如下:
$time = 'Jul 4 2024 05:20:00:000AM';
if($time == 0){
print"Int 0\n";
}elseif($time == '0'){
print"String 0\n";
}else{
print"Not 0\n";
}
输出结果为
Int 0
什么原因???
== 改为 ===, 则不会有问题
解答:
用双等号进行比较时,如果等号左右任意一边有数字类型的值,就会把另一个值转化为数字,然后进行比较。
这样的话,如果是纯字符串或者NULL时,会转化为0进行比较。
同样,大小于号也和等号一样,比较时可能出现不正确的结果