如果您運行此代碼:PHP - 我得到真(0 =='undefined'),爲什麼?
if (0=='undefined') echo 'true'; else echo 'false';
你得到「真」,這意味着INT 0等於字符串「未定義」。
這是爲什麼?我在這裏錯過了什麼?
如果您運行此代碼:PHP - 我得到真(0 =='undefined'),爲什麼?
if (0=='undefined') echo 'true'; else echo 'false';
你得到「真」,這意味着INT 0等於字符串「未定義」。
這是爲什麼?我在這裏錯過了什麼?
This table文檔當比較0
和"undefined"
時,兩者都先轉換爲數字。而this section說,"undefined"
轉換爲數字0
:
如果字符串以合法的數字數據開始,這將是使用的值 。否則,該值將爲0(零)。
因此,如果對PHP新手有些意外,預計可能會有比較結果。
如果您想要比較返回false
,因爲兩個操作數的類型不同,PHP提供的identical operator===
完全是這樣。
又一個「簡單代表」的問題。 Stackoverflow的醜陋界面使得編寫另一個答案變得更加容易,而不是找到已經被要求鏈接的數十億。而Stackoverflow醜陋的代表系統使得寫出新的新答案更令人滿意,而不僅僅是將問題作爲確切的重複來完成。 –