【发布时间】:2010-11-20 20:23:51
【问题描述】:
我看到了
if($output !== false){
}
这是一个带有两个等号的感叹号。
它几乎就像不相等一样。它有什么额外的意义吗?
【问题讨论】:
标签: php comparison operators
我看到了
if($output !== false){
}
这是一个带有两个等号的感叹号。
它几乎就像不相等一样。它有什么额外的意义吗?
【问题讨论】:
标签: php comparison operators
它们是严格相等运算符(===, !==),两个操作数必须具有相同的类型和值才能使结果为真。
例如:
var_dump(0 == "0"); // true
var_dump("1" == "01"); // true
var_dump("1" == true); // true
var_dump(0 === "0"); // false
var_dump("1" === "01"); // false
var_dump("1" === true); // false
更多信息:
【讨论】:
PHP 的 === 运算符使您能够比较或测试变量的相等性和类型。
所以 !== 是(不是 ===)
【讨论】:
!== 检查变量的类型和值。比如,
$a = 1;
$b = '1';
if ($a != $b) echo 'hello';
if ($a !== $b) echo 'world';
将只输出“世界”,因为$a 是一个整数,$b 是一个字符串。
您应该查看PHP operators 上的手册页,其中有一些很好的解释。
【讨论】:
看到这个问题:How do the equality (==) and identity (===) comparison operators differ?。
'!==' 是不等于的严格版本。 IE。它还会检查类型。
【讨论】:
是的,它还会检查这两个值是否属于同一类型。如果 $output 为 0,则 !== 将返回 false,因为它们既不是数字也不是布尔值。
【讨论】: