php字符串比较为0整数返回true?

时间:2011-12-29 18:40:36

标签: php

  

可能重复:
  Why does PHP consider 0 to be equal to a string?

我有这段代码:

$o['group'] = "prueba";
if( $o['group'] == 0){
    die("test");
}

为什么打印测试?怎么可能一个字符串等于零?

2 个答案:

答案 0 :(得分:18)

如果你想让它与字符串完全匹配,请尝试使用三个等号的确切字符,如此if( $o['group'] === 0){
将字符串与0的整数进行比较时,==将始终评估为true

  

'a string'== 0也计算为true,因为与整数相比,任何字符串都会转换为整数。如果PHP无法正确转换字符串,则将其计算为0.因此0等于0,等于为真。

来自here

答案 1 :(得分:10)

使用比较运算符和类型检查“===”。在这里查看示例http://php.net/manual/en/language.operators.comparison.php并解释为什么非数字字符串与零相比总是返回true