可能重复:
Why does PHP consider 0 to be equal to a string?
php string comparasion to 0 integer returns true?
似乎在PHP中有一个if语句,其中函数some_function()返回零
<?php
if( some_function() == "whatever_you_want" ) { ... }
该语句将始终执行
<?php
echo some_function() == "whatever_you_want";
然后为TRUE。
为什么用这种反直觉的方式表现PHP?
答案 0 :(得分:1)
这是defined behavior of PHP when you compare a number value and a string value:
如果将数字与字符串进行比较或比较涉及数字字符串,则每个字符串为converted to a number,并且数字执行比较。这些规则也适用于switch语句。比较为
===
或!==
时,不会进行类型转换,因为这涉及比较类型和值。
对===
或!==
使用严格的值比较,您就会得到预期的结果。