在 PHP 5.3 中,我偶然发现了这种情况:
$test=true;
return $test=='alternate';
它返回真。我不懂为什么。
为什么它返回true?
另外就是说:
$test=true;
return $test==='alternate';
返回假。理所当然的。我知道在大多数情况下最好使用严格比较,但我想了解第一种情况会发生什么?
在 PHP 5.3 中,我偶然发现了这种情况:
$test=true;
return $test=='alternate';
它返回真。我不懂为什么。
为什么它返回true?
另外就是说:
$test=true;
return $test==='alternate';
返回假。理所当然的。我知道在大多数情况下最好使用严格比较,但我想了解第一种情况会发生什么?
非空字符串被认为是真的。将 true 与 true 松散地比较会产生 true。
有关详细信息,请参阅http://www.php.net/manual/en/types.comparisons.php。并且始终使用严格的比较。您很少需要松散的变量,但在每种情况下,您都会怀疑您是要对变量进行类型转换还是错误。