如果您运行此代码: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丑陋的代表系统使得写出新的新答案更令人满意,而不仅仅是将问题作为确切的重复来完成。 –