if (0)
始终返回 false 。 if(false)
也会返回 false 。我无法理解这些差异。在这两种情况下,实际上如何返回?它是 NULL 还是其他任何东西?
答案 0 :(得分:3)
false
为boolean,0
为integer,NULL代表无价值的变量。
在if构造
中 if( expression ) statement;
if期望expression为boolean,因此integer 0
评估为boolean false
。
更多信息:
如果运算符,函数或控制结构需要boolean参数,则大多数情况下的值将自动转换。
转换为布尔值时,以下值被视为 FALSE :
其他每个值都被视为 TRUE (包括任何resource)。
有关详细信息,请查看Booleans。
答案 1 :(得分:0)
想象一下,您将[0, null, false, "", array(), etc]
与现有的东西或非空的东西进行比较。
PHP不是强类型语言。当非严格比较(==)时,请查看false,如下所示:
0
苹果不是苹果,而是false (has apples more then 0? No)
。
array()
- false (set is not empty? No)
。
""
- false (has string symbols? No)