为什么php认为空数组大于1?对象不是? 如果与布尔相比甚至更奇怪。
var_dump(array() > 1); // Print true
var_dump(array() === false); // Print false
var_dump(array() === true); // Print false again
和
var_dump(new stdClass > 1); // Print false
和
var_dump('' > 1); // Print false
PHP 5.4.4-14 + deb7u7
答案 0 :(得分:0)
答案 1 :(得分:0)
array() > 1
不是真正有意义的比较,虽然诚然array() < 1
是真的似乎更直观。但是,从文档中,与非数组相比,数组总是更大。
array() === false
array() === true
===
检查比较的项目是否为同一类型。数组与布尔值的类型不同,因此上述两个都是假的。
'' > 1
上面的空字符串为0,所以这是假的。
new stdClass > 1
这会发出Object of class stdClass could not be converted to int
的通知,这可能是您看到错误的原因。