比較運算子 == (相等運算子) 與 === (恆等運算子) 來比較兩個值。他們也被稱為 寬鬆等於 (==) 和 嚴格等於 (===) 運算子。
符號 | 名稱 | 範例 | 輸出結果 |
---|---|---|---|
== | 等於 | $a == $b | #忽略類型,如果$a 等於$b 則為TRUE |
=== | 恆等於 | $a === $b | 如果$a 等於$b,且類型相同則為TRUE |
PHP 運算子 PHP中有很多運算符, 但== 和=== 運算子嚴格或隨意執行類似的任務。
相等運算== 比較兩個值時會暫時轉換資料類型,而=== (全等運算子)不需要執行任何型別轉換,因此計算量減少,速度也更快。
案例1:
<?php // 0 == 0 -> 类型相同返回 true // 转换完成,然后 // 检查是否相等 var_dump(0 == "a"); // 1 == 1 -> true var_dump("1" == "01"); // 10 == 10 -> true var_dump("10" == "1e1"); // 100 == 100 -> true var_dump(100 == "1e2"); // 0 === "a" -> 这种情况为 false // 转换不仅完成 // 还检查是否存在 // 是否相等 var_dump(0 === "a"); // "1" === "01" -> false var_dump("1" === "01"); // "10" === "1e1" -> false var_dump("10" === "1e1"); // 100 == "1e2" -> false var_dump(100 === "1e2"); switch ("a") { case 0: echo "In first case"; break; // 永远不会匹配 "a" 选项 // 因为 switch 使用的是 == case "a": echo "In sceond case"; break; } ?>
輸出:
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
In first case
#案例2:
<?php // TRUE - 以下表达式等同于 (bool)1 == TRUE var_dump(1 == TRUE); // TRUE - 以下表达式等同于 (bool)0 == FALSE var_dump(0 == FALSE); // FALSE - 1 不全等于 TRUE // 1 是整形, TRUE 是布尔型 var_dump(1 === TRUE); // FALSE - 0 不全等于 FALSE // 0 是整形, FALSE 是布尔型 var_dump(0 === FALSE); ?>
輸出:
#bool(true)
bool(true)
bool(false)
bool(false)
注意: === 運算子'類型比較相對安全', 僅當兩個值具有相同的類型和值時才會回傳TRUE, 使用== 時,值相等就會回傳TRUE。
推薦教學:《PHP教學》
以上是為什麼 === 的速度比 == 快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!