Оператор эквивалентности в php
Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы разобрали условный оператор в PHP. В данной статье я бы хотел рассказать о том, что такое оператор эквивалентности в PHP, и когда возникает необходимость в его использовании. PHP автоматически приводит типы. С одной стороны это хорошо, а с другой — есть шанс возникновения трудно досягаемых ошибок. Давайте рассмотрим пример, когда приведение типов работает нам на руку:
<?php $a = 5; //тип integer $b = "10"; //тип string $sum = $a + $b; echo "Сумма двух чисел = $sum"; ?>
В данном случае мы складываем целый тип со строкой. В данном случае значение переменной b приводится к целому типу, и мы получим, что сумма двух чисел равна 15. Всё правильно. Давайте рассмотрим такой пример:
<?php $a = 0; $b = ""; if ($a == $b) echo "Переменные равны"; else echo "Переменные не равны"; ?>
Если мы запустим данный скрипт, то увидим сообщение, что переменные равны. Но это же абсурд, как может число 0 быть равным пустой строке. Дело здесь в том, что для PHP число 0 — это false, пустая строка — это тоже false. Получается, что false = false, значит переменные равны. Оператор "==" сравнивает только значения, но не сравнивает их типы.
Для сравнения переменных не только по значению, но и по типу, необходимо использовать оператор эквивалентности "===". Давайте перепишем пример:
<?php $a = 0; $b = ""; if ($a === $b) echo "Переменные равны"; else echo "Переменные не равны"; ?>
В данном случае выйдет сообщение, что переменные не равны.
Что же здесь произошло? Оператор эквивалентности сравнил значения — они оказались равны. Затем сравнил типы: у переменной a тип integer, а у переменной b тип string. Типы различаются, поэтому оператор эквивалентности вернул false.
Всегда будьте внимательны при использовании условий на сравнение, возможно там закралась ошибка и нужно поставить оператор эквивалентности (например вы проверяете, что соединение с базой данных успешно установлено, или же открыт файл или нет).
Домашнее задание: В качестве домашнего задания наберите следующий код и проверьте, что в итоге получится (проанализируйте полученный результат):
<?php $a = 5; //тип integer $b = "10b"; //тип string $sum = $a + $b; echo "Сумма двух чисел = $sum"; ?>
В данной статье вы узнали, что такое оператор эквивалентности в PHP и в каких случаях его использовать.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.