可能是重复问题:
为什么PHP认为0等于一个字符串?
我有这段代码:
$o['group'] = "prueba";
if( $o['group'] == 0){
die("test");
}
为什么会输出test?一个字符串怎么可能等于零?可能是重复问题:
为什么PHP认为0等于一个字符串?
我有这段代码:
$o['group'] = "prueba";
if( $o['group'] == 0){
die("test");
}
为什么会输出test?一个字符串怎么可能等于零?if( $o['group'] === 0){
==
会始终评估为true。
'a string' == 0 也会评估为true,因为任何字符串在与数字比较时都会转换为整数。 如果PHP无法正确地转换字符串,则将其评估为0。 因此,0等于0,等同于true。
来自这里
(int) '0.1e2' === 0
是真的,但'0.1e2' == 0
是假的。字符串内容决定了将字符串转换为哪种数据类型(int或float)。 - Gumbotrue
。 http://php.net/manual/en/language.operators.comparison.php