考虑php中的两个问题:
$x = "0"; if($x){// do something}
$x = "1"; if($x){ ... }
此处$x="0"
会在比较时将值返回为false,而$x="1"
的赋值将返回true。为什么会这样?
答案 0 :(得分:3)
就像那样,因为它是用documentation写的:
转换为布尔值时,以下值被视为FALSE:
您的案例是字符串" 0"。
大多数情况下,如果你有一个奇怪的行为,首先要做的是文档和阅读所有内容,之后检查一个类似名称的错误报告。在此之后,在stackoverflow上询问或制作own bug report是有意义的。
答案 1 :(得分:2)
请看这里:http://www.php.net/manual/en/language.types.boolean.php
转换为布尔值时,以下值被视为FALSE:
[...]
空字符串,字符串“0”