我有这段代码:
$o['group'] = "prueba";
if( $o['group'] == 0){
die("test");
}
为什么打印测试?怎么可能一个字符串等于零?
答案 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
。