0

在 PHP 5.3 中,我偶然发现了这种情况:

$test=true;
return $test=='alternate';

它返回真。我不懂为什么。

为什么它返回true?

另外就是说:

$test=true;
return $test==='alternate';

返回假。理所当然的。我知道在大多数情况下最好使用严格比较,但我想了解第一种情况会发生什么?

4

1 回答 1

2

非空字符串被认为是真的。将 true 与 true 松散地比较会产生 true。

有关详细信息,请参阅http://www.php.net/manual/en/types.comparisons.php。并且始终使用严格的比较。您很少需要松散的变量,但在每种情况下,您都会怀疑您是要对变量进行类型转换还是错误。

于 2013-11-02T23:35:29.457 回答