Intereting Posts

В чем разница между равными и идентичными операторами сравнения в PHP?

Возможный дубликат:
Как различаются операторы сравнения равенства (== double equals) и идентичности (=== triple equals)?

Я знаю основную разницу между == и === , но могут ли некоторые опытные кодеры рассказать мне некоторые практические примеры для обоих случаев?

== проверяет, равны ли значения двух операндов или нет. === проверяет значения, а также тип двух операндов.

 if("1" == 1) echo "true"; else echo "false"; 

Вышеизложенное выводит значение true .

 if("1" === 1) echo "true"; else echo "false"; 

Вышеизложенное выводит false .

 if("1" === (string)1) echo "true"; else echo "false"; 

Вышеизложенное выводит значение true .

Самый простой способ показать его – использовать строки. Два примера:

 echo ("007" === "7" ? "EQUAL!" : "not equal"); echo ("007" == "7" ? "EQUAL!" : "not equal"); 

В дополнение к примеру @ DavidT, более практичным примером является следующее:

 $foo = "Goo"; $bar = "Good Morning"; if (strpos($bar,$foo)) echo "Won't be seen, returns false because the result is in fact 0"; if (strpos($bar,$foo) !== false) echo "True, though 0 is returned it IS NOT false)";