Какая разница между «===» и «==» ?

Многие просят объяснить простыми словами разницу между простым знаком сравнения «==» и тройным знаком сравнения «===» в PHP.

На самом деле всё очень просто. Как вы знаете, язык PHP нетипизированный, то есть переменные в нём как бы не имеют типа. На самом деле это не совсем так, и переменные всё-таки имеют тип, но значения разных типов в большинстве случаев будут вести себя одинаково. Например, «5» это почти то же самое, что и 5. В частности оба условия («5» == 5) и (5 == 5) дадут нам true.

Оператор «===» (тройной оператор сравнения) введён для того, чтобы вместе со значением сравнить ещё и тип. Например, условие («5» === 5) даст нам false.

Для чего это может быть полезно?

Во многих ситуациях это может быть полезно, а иногда применение этого оператора даже обязательно. Например, функция strpos(), которая ищет положение подстроки в другой строке, вернёт false, если подстрока не найдена. И вернёт 0, если подстрока найдена и располагается в начале строки. Единственно правильная проверка на наличие подстроки будет if (strpos($a, $b) !== false) { … }
И таких ситуаций достаточно много можно найти в документации к PHP.

Программируйте правильно!

Отправить ответ

1 Комментарий на "Какая разница между «===» и «==» ?"

Notify of
avatar
Sort by:   newest | oldest | most voted
JILeXanDR
Гость

Спасибо, приму к вниманию!

wpDiscuz