我刚刚发现了PHP if子句
的奇怪行为var_dump((bool)0);
var_dump((bool)"one");
var_dump(0 == "one");
打印
bool(false) bool(true) bool(true)
文档说“表达式被评估为其布尔值”,因此布尔值0
为false
而"one"
为true
所以{{1}的结果应该是0 == "one"
,但它是false
。
有人可以解释一下吗?
答案 0 :(得分:2)
由于您使用整数"one"
0
会转换为整数0
如果您将数字与字符串进行比较或比较涉及数字字符串,则每个字符串都会转换为数字,并且数字会进行比较。
点击此处:http://php.net/manual/en/language.operators.comparison.php