Php 如果在if语句中使用相同的比较运算符(==),如果不单独使用,则会失败?

Php 如果在if语句中使用相同的比较运算符(==),如果不单独使用,则会失败?,php,comparison,conditional-operator,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 s

我想测试一个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 :)
不会抛出任何错误

所以我在这里错过了什么。。。
为什么第一行不起作用,我想说的正确方法是什么?

操作符也会检查变量的类型

这就足够了:

if (!$var) {}

以下是o/p:bool(真),bool(假)。 因为这里“10”被认为是字符串。 在同一运算符中,它不仅检查值,还检查数据类型
正在将字符串与整数数据类型进行比较。所以它的结果是错误的。

这对我来说很有效。。。你能提供周围的代码行吗?这肯定是错误所在的线路吗?这可能是一个错误。显示完整的脚本、名称PHP版本和平台。否则就不能用
//做点什么
。天哪,对不起,这里的女孩/男孩感觉自己像个傻瓜。。一个硬空间取代了普通空间,我对所有看不见的角色进行了测试。。现在它可以正常工作了(有或没有额外的支架..但你是对的,它们是多余的,所以它们现在不见了,谢谢:),…对此感到抱歉。+1对这个秘密的诚实解释$如果$var是bool(false),那么var将为TRUE,这是我不想要的。我希望它只有在$var是string('false')时才为true。出于这个原因,我不能使用if(!$var)。@mikkelbreum:+1谢谢你,重读你的问题,我想我完全搞糊涂了你在我心目中希望实现的目标-/
<?php
          $x=10;
          $y="10";
 echo ($x==$y);
 echo ($x===$y);
 ?>