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

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

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

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

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

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

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

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

avatar
1 Цепочка комментария
0 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
1 Авторы комментариев
JILeXanDR Авторы недавних комментариев
  Подписаться  
новее старее большинство голосов
Уведомление о
JILeXanDR
Гость
JILeXanDR

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