<MyRusakov.ru />

Создание Интернет-магазина на PHP и MySQL

Создание Интернет-магазина на PHP и MySQL

Видеокурс "Создание Интернет-магазина на PHP и MySQL" - это уникальный курс по созданию Интернет-магазина с нуля. Особенностью данного курса является то, что создание идёт с самого начала, то есть от идеи. Далее создаётся дизайн всех необходимых страниц, после делается их вёрстка. Затем создаётся движок на PHP и MySQL, после делается Admin-панель и, наконец, готовый сайт размещается в Интернете.

Адрес созданного в этом курсе сайта: http://storedvd.ru

Всё создание сайта будет происходить на Ваших глазах, поэтому Вы легко сможете повторить весь процесс создания сложного функционального сайта уже при разработке своего портала.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Оператор эквивалентности PHP

Оператор эквивалентности PHP

Достаточно часто появляется такая проблема в PHP, решением которой является использование оператора эквивалентности. Дело в том, что PHP любит преобразовывать типы, и, с одной стороны, это хорошо. Например, при сложении числа и строки, строка преобразуется в число и складывается. В результате, всё хорошо. Но бывают случаи, когда такое преобразование плачевно. Пример? Читайте далее.

Допустим, у Вас есть две переменные:

<?php
  $var_1 = 0;
  $var_2 = "";
  if ($var_1 == $var_2) echo "Переменные равны";
?>

Как Вы и догадались, PHP нам выведет, что переменные равны. Но разве 0 равен пустой строке? Разумеется, нет. А почему так произошло? Всё достаточно просто: 0 для PHP - это false (другие числа - это true), а пустая строка - это тоже false (если она не пустая, то PHP считает её true). В итоге, у нас оба операнда стали false, и, очевидно, что они равны. То есть в данном примере мы явно видим, что преобразование сработало неверно. И поверьте моему опыту, данных засадных мест встречается очень много.

Теперь встаёт вопрос: "Как бороться с этим?". Как Вы догадались из названия статьи, с помощью оператора эквивалентности PHP, который обозначается так "===". Данный оператор сверяет не только значения (как делает оператор сравнения, используемый нами выше), но и типы. То есть чтобы проверка эквивалентности выдала true необходимо совпадение не только значений, но и типов. Давайте проверим это:

<?php
  $var_1 = 0;
  $var_2 = "";
  if ($var_1 === $var_2) echo "Переменные равны";
  else echo "Переменные не равны";
?>

Результатом выполнения скрипта будет вывод строки: "Переменные не равны", чего мы с Вами и добивались. То есть значения переменных равны, но их типы не совпадают (одна переменная integer, а другая string), поэтому оператор эквивалентности вернул false и отправил нас в блок else, где мы и вывели соответствующую строку.

Разумеется, у Вас впереди будет ещё много ошибок, связанных с преобразованием типов, так как подобных нюансов действительно очень много, но со временем Вы научитесь использовать оператор эквивалентности, и ошибок определённо станет меньше.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (5):

lagprincesse lagprincesse 24.06.2013 20:52:07

<?PHP $a = 0; $b = "hhh"; if ($a == $b) echo "!"; else echo "?"; ?> в браузере говорит "!", а ведь должен говорить "?" - почему так, подскажите, плиз

Ответить

Admin Admin 24.06.2013 21:21:25

Проверил, выводит !.

Ответить

lagprincesse lagprincesse 24.06.2013 21:29:27

да,но значение строки "hhh" - true, а 0 - false? значит, в данном случае должно быть "?" на выходе? или я что-то не правильно поняла?:(

Ответить

Admin Admin 25.06.2013 10:35:27

Вы проверяете на равенство, очевидно, что true не равно false, поэтому и выводится !.

Ответить

ramazan ramazan 18.01.2014 23:00:56

Прочитав про false и true, я тоже немного растерялся и не мог понять, почему же , если "hhh" возвращает TRUE, а 0 возвращает FALSE , почему же они равны. А дело, как оказалось, в том, что если один из операндов логического оператора может трактоваться как число, то оба операнда трактуются как числа. При этом пустая строка превращается в 0, который затем и сравнивается с нулем. Ссылка - http://www.php.su/learnphp/operators/?equiv Попробуйте, как сделал я : $a приравняйте к какому-то другому числу, 5, например. И увидите, что возвратится ваш "?", т.к. "hhh" преобразуется в число 0, а 0 и 5 не равны. Надеюсь, помог.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.