变量值0等于字符串结果为true

时间:2014-04-17 09:26:16

标签: php

在下面的示例中,我已经在PHP语句中遇到了一些非常奇怪的行为:

从逻辑上讲,它不应该在这种情况下返回1。为什么会这样?只是想知道。

$test = 0;
var_dump($test); // gives int 0
$test = ($test == 'test') ? 1 : 0;
var_dump($test); //gives int 1

2 个答案:

答案 0 :(得分:3)

这是因为type juggling'test'等于0,因为(int)'test'实际上是0。因此,您的条件为真,结果为1

在您的特定情况下,您可能想知道PHP converts如何与数字串联。

答案 1 :(得分:2)

尝试使用===来比较值的类型:

$test = ($test === 'test') ? 1 : 0;