在上一篇《我來告訴你PHP中require_once()為什么不好用!》中給大家介紹了PHP中require_once()為什么不好用的原因,感興趣的朋友可以去閱讀了解一下~
那么本文將給大家介紹PHP中的===
運算符為什么比==
快?
PHP中的===和==運算符,這兩個運算符屬于PHP中的比較運算符。
===
運算符稱為絕對等于
,==
運算符稱為等于
。
語法示例:
$a == $b
,如果在類型轉(zhuǎn)換后 $a 等于 $b,則為 TRUE;
$a === $b
,如果 $a 等于 $b,并且兩者的類型相同,則為 TRUE;
-
如果操作數(shù)的類型不同,那么==和===將產(chǎn)生不同的結(jié)果。在這種情況下,操作符的速度會有所不同,因為==將執(zhí)行類型轉(zhuǎn)換,然后進(jìn)行比較。
-
如果操作數(shù)是相同類型的,那么==和===將產(chǎn)生相同的結(jié)果。在這種情況下,這兩個操作符的速度幾乎相同,因為任何操作符都不執(zhí)行類型轉(zhuǎn)換。
==操作符會臨時轉(zhuǎn)換數(shù)據(jù)類型,以查看其值是否等于另一個操作數(shù),而===不需要進(jìn)行任何類型轉(zhuǎn)換,因此完成的工作更少,這也就使得它比==操作符快。
代碼示例1:
<?php 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"); // "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:
<?php var_dump(1 == TRUE); var_dump(0 == FALSE); var_dump(1 === TRUE); var_dump(0 === FALSE);
輸出:
boolean true boolean true boolean false boolean false
注意: === 運算符執(zhí)行“類型安全比較”,僅當(dāng)兩個操作數(shù)具有相同的類型和值時它才會返回 true,而如果只比較值就可以使用==。
最后給大家推薦最新最全面的《PHP視頻教程》~快來學(xué)習(xí)吧!