聊聊PHP中的 === 運算子為什麼比 == 快
在上一篇《聊聊中require_once()函式為什麼不好用》中給大家介紹了PHP中require_once()為什麼不好用的原因,感興趣的朋友可以去閱讀了解一下~
那麼本文將給大家介紹PHP中的===
運算子為什麼比==
快?
PHP中的===和==運算子,這兩個運算子屬於PHP中的比較運算子。
===
運算子稱為絕對等於
,==
運算子稱為等於
。
語法示例:
$a == $b
,如果在型別轉換後 $a 等於 $b,則為 TRUE;
$a === $b
,如果 $a 等於 $b,並且兩者的型別相同,則為 TRUE;
-
如果運算元的型別不同,那麼==和===將產生不同的結果。在這種情況下,操作符的速度會有所不同,因為==將執行型別轉換,然後進行比較。
-
如果運算元是相www.cppcns.com同類型的,那麼==和===將產生相同的結果。在這種情況下,這兩個操作符的速度幾乎相同,因為任何操作符都不執行型別轉換。
http://www.cppcns.com
==操作符會臨時轉換資料型別,以檢視其值是否等於另一個運算元,而===不需要進行任何型別轉換,因此完成的工作更少,這也就使得它比==操作符快。
程式碼示例1:
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"); var_dump(0 === "a"); // "1" === "01" -> false var_dump("1" === "01")http://www.cppcns.com; // "10" === "1e1" -> false var_dump("10" === "1e1"); // 100 == "1e2" -> false var_dump(100 === "1e2"); switch ("a") { case 0: echo "第一種情況"; break; case "a": echo "第二種情況"; break; }
輸出:
boolean true
boolean true
boolean true
boolean true
boolean false
boolean false
boolean false
boolean false
第一種情況
程式碼示例2:
var_dump(1 == TRUE); var_dump(0 == FALSE); var_dump(1 === TRUE); var_dump(0 === FALSE);
輸出:
boolean true
boolean true
boolean false
boolean false
注意: === 運算子執行“型別安全比較”,僅當兩個運算元具有相同的型別和值時它才會返回 true,而如果只比較值就可以使用==。
到此這篇關於聊聊PHP中的 === 運算子為什麼比 == 快的文章就介紹到這了,更多相關PHP === ==內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!