如果变量值为0(浮点数),它将通过所有这些测试:
$test = round(0, 2); //$test=(float)0
if($test == null)
echo "var is null";
if($test == 0)
echo "var is 0";
if($test == false)
echo "var is false";
if($test==false && $test == 0 && $test==null)
echo "var is mixture";
我认为它只会在($ test == 0)
时通过我找到的唯一解决方法是使用函数is_number()检测$ test是否为数字,但是我可以检测浮点变量是否等于零吗?
答案 0 :(得分:17)
还使用===
检查数据类型:
$test = round(0, 2); // float(0.00)
if($test === null) // false
if($test === 0) // false
if($test === 0.0) // true
if($test === false) // false
答案 1 :(得分:2)
使用3个等号而不是2个来测试类型:
if($test === 0)
答案 2 :(得分:0)
如果您使用===而不是==它会比较以及获取数据类型错误管理...您可以在使用===时发布您的答案吗?请检查这两个here
之间的区别当比较PHP中的值是否相等时,可以使用==运算符或===运算符。 2之间有什么区别?嗯,这很简单。 ==运算符只是检查左右值是否相等。但是,===运算符(注意额外的“=”)实际检查左边和右边的值是否相等,并检查它们是否属于相同的变量类型(比如它们是否都是布尔值,整数)等等。)。