if (0)
总是返回false。并且if(false)
还返回false。我无法理解这些区别。在这两种情况下,如果返回,实际上会怎样?它是NULL还是其他什么?
问问题
113 次
2 回答
3
在if构造中
if( expression ) statement;
if期望表达式为boolean,因此integer 0
的计算结果为boolean false
。
更多信息 :
如果运算符、函数或控制结构需要布尔参数,则大多数情况下会自动转换值。
转换为布尔值时,以下值被视为FALSE:
- 布尔值 FALSE本身
- 整数0(零)
- 浮点数0.0(零)
- 空字符串和字符串“0”
- 一个元素为零的数组
- 具有零成员变量的对象(仅限 PHP 4 )
- 特殊类型NULL(包括未设置的变量)
- 从空标签创建的SimpleXML对象
其他所有值都被视为TRUE(包括任何资源)。
有关更多信息,请查看布尔值。
于 2013-10-22T08:48:20.463 回答
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)
于 2013-10-22T08:59:40.837 回答