如果单独使用if语句失败,使用相同比较运算符(===)?

时间:2010-11-11 13:10:31

标签: php comparison conditional-operator

我想测试var是否与三种可能性中的一种相同(类型和值)。

所以我这样做:

if(($var === 0) || ($var === '0') || ($var === 'false'))
    // do something

但是这会导致以下错误:

  

致命错误:在第xxx行的/htdocs/thefile.php中调用未定义的函数()

如果相反,我只是使用这样的等比较运算符:

if(($var == 0) || ($var == '0') || ($var == 'false'))
    // do something

不会抛出任何错误,但这不是我要进行的比较检查..

现在,如果我只尝试一个相同的比较,那就很好了:

if(($var === 0))
    // do something.. this throws no error :)

不会抛出任何错误..

所以我在这里想念的是什么...... 为什么第一行不起作用,以及我在这里做的事情的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

===运算符也会检查变量的类型 ...

这应该足够了:

if (!$var) {}

答案 1 :(得分:-1)

<?php
          $x=10;
          $y="10";
 echo ($x==$y);
 echo ($x===$y);
 ?>

这是o / p:bool(ture),bool(false)。    因为这里“10”被认为是字符串。    在相同的运算符中,它不仅检查值,还检查数据类型。所以我们在这里    比较字符串和整数数据类型。所以结果是假的。