php,我最亲爱的老朋友。
好的,所以我可以理解为什么字符串 '0' 会是一个虚假值。这是公平的,因为'0'
它与松散类型的语言相同0
,并且0
是false
松散类型的语言。所以这给出了false
== 0
== '0'
。
很好很好......但是!这是怎么回事?
<?php
print "number of surprised persons: " . ('false' == 0);
输出是....
number of surprised persons: 1
这怎么合理?我是唯一对此感到惊讶的人吗?我没看到什么?
进一步的测试证明整数 0 等于(通过运算符 ==)
0 <-- integer
false <-- boolean
null <-- just.. you know, null
'0' <-- string
'' <-- string
'false' <-- string
'true' <-- string
'null' <-- string
自然,我主要使用 operator === 来比较东西。既然我知道了这一点,我当然必须调整我的程序,对此毫无疑问。但还是!有人能解释一下吗?