可能的重复项:
为什么 PHP 认为 0 等于字符串?
我有这段代码:
$o['group'] = "prueba";
if( $o['group'] == 0){
die("test");
}
为什么要进行打印测试? 字符串怎么可能等于零?
如果您希望它与字符串完全匹配,请尝试使用完全相同的三个等号,例如 so
if( $o['group'] === 0){
将字符串与整数 0 进行比较时,==
的计算结果始终为 True
"A String" == 0 的计算结果也为 true,因为与整数相比,任何字符串都会转换为整数。如果 PHP 无法正确转换字符串,则将其评估为 0。所以 0 等于 0,等于 true。
从这里
将比较运算符与类型检查"==="一起使用。在这里查看示例 http://php.net/manual/en/language.operators.comparison.php 并解释为什么与零相比的非数字字符串总是返回true
。