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

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

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

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

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

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

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

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

avatar
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
JILeXanDR Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
JILeXanDR
Гость
JILeXanDR

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