如何在PHP中检测if(float)0 == 0或null

时间:2014-07-30 13:35:44

标签: php decimal detect zero

如果变量值为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是否为数字,但是我可以检测浮点变量是否等于零吗?

3 个答案:

答案 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之间有什么区别?嗯,这很简单。 ==运算符只是检查左右值是否相等。但是,===运算符(注意额外的“=”)实际检查左边和右边的值是否相等,并检查它们是否属于相同的变量类型(比如它们是否都是布尔值,整数)等等。)。