可能重複:
How do the equality (== double equals) and identity (=== triple equals) comparison operators differ?PHP中平等和相同的比較運算符有什麼區別?
我知道==
和===
之間的基本差異,但一些有經驗的程序員可以告訴我這兩種情況下一些實際的例子?
可能重複:
How do the equality (== double equals) and identity (=== triple equals) comparison operators differ?PHP中平等和相同的比較運算符有什麼區別?
我知道==
和===
之間的基本差異,但一些有經驗的程序員可以告訴我這兩種情況下一些實際的例子?
==
檢查兩個操作數的值是否相等。 ===
檢查值以及兩個操作數的類型。
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)";
見http://stackoverflow.com/questions/3641819/php-not - 等於和/ 3641837#3641837(比較`!=`和`!==`,但你明白了) – BoltClock 2011-01-19 07:24:06