在下面的示例中,我已经在PHP语句中遇到了一些非常奇怪的行为:
从逻辑上讲,它不应该在这种情况下返回1。为什么会这样?只是想知道。
$test = 0;
var_dump($test); // gives int 0
$test = ($test == 'test') ? 1 : 0;
var_dump($test); //gives int 1
答案 0 :(得分:3)
这是因为type juggling。 'test'
等于0
,因为(int)'test'
实际上是0
。因此,您的条件为真,结果为1
。
在您的特定情况下,您可能想知道PHP converts如何与数字串联。
答案 1 :(得分:2)
尝试使用===
来比较值的类型:
$test = ($test === 'test') ? 1 : 0;