0

这种比较之间有区别吗?有什么区别!和 === 假?

if (!class_exists($class)) {
  require($class.'.php');
}

if (class_exists($class) === FALSE) {
  require($class.'.php');
}
4

2 回答 2

1

在这种情况下,没有。

有些人认为明确表明他们正在与布尔值进行比较是一种很好的编程风格。就个人而言......我不喜欢它,但我想更冗长的形式更明显,因为!运算符在括号和其他垂直字符之间粉碎时不是最明显的东西。

于 2012-05-22T04:11:33.473 回答
-1

是的,两者都是不同的东西:

php 自动将 0 视为“假”,将 1 视为“真”,因此当您直接在 if 条件内使用函数响应时,这两者都会有所不同。

考虑一个函数,如果正确执行它会返回 int 数。它也可能是0。但是,如果函数不符合要求,则返回 false。

所以此时函数返回值0就是成功。事件虽然结果为零。在这个如果你检查这个如果条件像

$return = someFunction();

if($return){
  //code if ture
}

因此,如果 $return 为 0,即使您的函数执行正确,您的 if 代码也不会执行,因此在这种情况下,您应该检查一下

$return = someFunction();

if($return !== FALSE){
  //code if ture
}

=== 和 !== 也用于检查响应是否完全匹配返回类型。

if('0' === 0)

将返回 false 但

if('0' == 0)

将返回真...

希望你的想法现在很清楚。

看一下这个:

if('0' == 0){
    echo 'Hi, I will be in screen :)';
}

if('0' === 0){
    echo 'I will not be in screen :(';
}
于 2012-05-22T04:31:20.450 回答