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

发布于 2024-10-02 01:00:17 字数 632 浏览 3 评论 0原文

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

所以我这样做:

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

但这会导致以下错误:

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

如果相反,我只是使用相等比较运算符,如下所示:

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

不会引发错误,但这不是我想要进行的比较检查..

现在,如果我只是尝试进行一个相同的比较,那么效果很好:

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

不会引发任何错误。

那么我在这里缺少什么...... 为什么第一行不起作用,以及我在这里之后做的事情的正确方法是什么?

I want to test if a var is Identical (type and value) to one of three possibilities.

So I do:

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

But this results in the following error:

Fatal error: Call to undefined function () in /htdocs/thefile.php on line xxx

If instead, I simply use Equal Comparison operators like this:

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

No error is thrown, but this is not the comparison check I want to make..

Now, if I just try with one Identical comparison it goes fine:

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

No error is thrown..

So what am I missing here...
Why does the first line not work, and what would be the correct way of doing what I'm after here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过气美图社 2024-10-09 01:00:17

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

这应该足够了:

if (!$var) {}

The === operator checks the type of the variable as well...

This should be sufficient:

if (!$var) {}
巷雨优美回忆 2024-10-09 01:00:17
<?php
          $x=10;
          $y="10";
 echo ($x==$y);
 echo ($x===$y);
 ?>

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

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

Here are the o/p: bool(ture), bool(false).
because here "10" is considered as string.
In Identical operator it not only checks the value but also the data type.So here we are
comparing string with integer data type. so it results false.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文