Разница между == (двойной равностью) и === (тройной) в PHP?

PHP, Вопросы и ответы
25 февраля 2012

Вопрос

Вы можете объяснить, какая разница между операторами равно == и === на PHP? Если можно, приведите наглядные примеры.


Ответ №1

Лучше всего почитать объяснение в официальной документации.

Оператор равенства == сравнивает две переменные с приведением типов, если это необходимо. Если 2 операнда имеют разный тип, они приводятся к одному, и затем сравниваются.

Оператор идентичности === проверяет, являются ли переменные равные и при этом имеют одинаковый тип. То есть, грубо говоря, если у операндов будет разный тип, то === сразу же вернёт false, не будет даже смотреть на их значения.

Я составил таблицу, которая наглядно демонстрирует, как 2 переменные соотносятся друг с другом.

‘===’ означает, что они считаются идентичными.
‘==’ означает, что они считаются равными.
‘!=’ означает, что они не считаются равными.

false null array() 0 "0" 0x0 "0x0" "000" "0000"
false === == == == == == != != !=
null == === == == != == != != !=
array() == == === != != != != != !=
0 == == != === == === == == ==
"0" == != != == === == == == ==
0x0 == == != === == === == == ==
"0x0" != != != == == == === == ==
"000" != != != == == == == === ==
"0000" != != != == == == == == ===

Нет комментариев

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


(обязательно)