为什么在PHP中预定义的值等于0并且同时小于-1?
请参阅以下代码:
<?PHP
var_dump(null == 0); // evaluates to true
var_dump(null < -1); // this also evaluates to true
?>
解决方法:
它不是null的值,它给你的结果是它在比较期间的动态转换
对于PHP手册
对于各种类型,根据下表(按顺序)进行比较.
http://php.net/manual/en/language.operators.comparison.php
你可以看到,如果操作数1是bool或null并且操作数2不是转换为bool应用的边,并且在PHP中0也是假,在PHP中也将null,false,0和空字符串视为相等.所以
var_dump(null == 0);
就像var_dump(false == false);评估为真
和var_dump(null< -1)类似于var_dump(false< true),这也是真的 因此你得到了这些结果