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

Оператор эквивалентности в 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 и в каких случаях его использовать.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *