<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

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

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

Подписавшись по 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-код ссылки для форумов (например, можете поставить её в подписи):

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

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, поэтому и выводится !.

Ответить

ytuber_vladzio ytuber_vladzio 30.12.2016 20:25:01

но если true не равно false, условие не выполняется и по этому должно выводить else тоесть "?"

Ответить

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 не равны. Надеюсь, помог.

Ответить

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