条件比较字符串与bool返回不需要的结果,除非使用严格比较

时间:2013-11-02 23:32:31

标签: php string comparison conditional-statements

在PHP 5.3中,我偶然发现了这个案例:

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

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

为什么它会返回true?

另外就是说:

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

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

1 个答案:

答案 0 :(得分:2)

非空字符串被认为是真实的。将真实与真实收益率进行比较,真实。

有关详细信息,请参阅http://www.php.net/manual/en/types.comparisons.php。并始终使用严格的比较。你很少需要松散的,但在每种情况下,你都会怀疑你是否打算输入变量或是否是错误。