我想测试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 :)
不会抛出任何错误..
所以我在这里想念的是什么...... 为什么第一行不起作用,以及我在这里做的事情的正确方法是什么?
答案 0 :(得分:1)
===
运算符也会检查变量的类型 ...
这应该足够了:
if (!$var) {}
答案 1 :(得分:-1)
<?php
$x=10;
$y="10";
echo ($x==$y);
echo ($x===$y);
?>
这是o / p:bool(ture),bool(false)。 因为这里“10”被认为是字符串。 在相同的运算符中,它不仅检查值,还检查数据类型。所以我们在这里 比较字符串和整数数据类型。所以结果是假的。