PHP中字符串和数字 0 比较返回true?
$str="字符串";
if($str==0){
echo "返回了true.";
}
执行结果是输出了: 返回了true
.这里任意字符串和0
比较都返回true
。
原理:
if($str==0)
,字符串和数字比较是否相等, 相当于 把$str
字符串隐性转换为数字,然后再比较,相当于 if( intval($str) == 0 )
。
if($str==0)
判断 和 if( intval($str) == 0)
是等价的,而和 if ($str)
是不一样的。if ($str)
可以判断 $str
值有没有被初始化。
有没有付值,只要付值,就返回true。
当然你也可以使用 $str="字符串";if($str===0){echo "返回了true.";}
,就是 判断 $str
的数据类型 和值 都和0的值 数据类型一样,
才可以返回true