调试一些代码时,我发现了类似的情况,其中检查数组的值是否大于2。由于代码是这样的东西(不是真实的示例),所以始终求值为true
['key'=>'value']> 2 //评估为true。
我开始进行挖掘,事实证明,在php中,以下内容是正确的:
php > var_dump([] > 1);
bool(true)
php > var_dump([] > 0);
bool(true)
php > var_dump([] > 10000);
bool(true)
php > var_dump(array() > 100);
bool(true)
为什么将其评估为true
?
我在nodejs上有更多的经验,这将有完全不同的行为,但似乎更合乎逻辑,例如在js中,以下为真[] == 0
这是错误的[] > 1