PHP中的运算符!=
和<>
之间有什么区别?我需要检查变量是否不等于NULL
。我应该使用哪种运营商?
答案 0 :(得分:5)
这两个运营商之间没有区别。
要检查NULL
,您可能希望使用身份运算符===
代替,但是:
$a = 0;
if ($a == NULL) {
// executes
}
上述条件实际上评估为真。但是,使用身份运算符,您可以检查变量是否真的 NULL
(或者还有:TRUE
或FALSE
或其他任何内容,您需要检查其实际值和不先前类型转换的结果)。希望这是有道理的。
编辑:要实际回答问题并参考我的咆哮,为了检查变量是否 not null ,您可以使用身份运算符的对应{{em> 1}}(或其他答案和评论中建议的!==
)。
答案 1 :(得分:3)
请参阅PHP docs:
它说:
$a != $b Not equal TRUE if $a is not equal to $b after type juggling.
$a <> $b Not equal TRUE if $a is not equal to $b after type juggling.
该页面上还有一个表格,解释了如何处理null。此外,请参阅此页面以了解type comparisons。
的讨论答案 2 :(得分:1)
Google的第一个结果:
答案 3 :(得分:0)
==' (Equal):
if("22" == 22) echo "YES";
else echo "NO";
上面的代码将打印“是”。原因是操作数的值相等。而当我们运行以下示例代码时:
'===' (Identical):
if("22" === 22) echo "YES";
else echo "NO";
我们得到的结果是“不”。原因是尽管两个操作数的值相同,但它们的类型不同,“22”(带引号)是一个字符串,而22(不带引号)是一个整数。但是,如果我们将上面的代码更改为以下内容:
if("22" === (string)22) echo "YES";
else echo "NO";
没有&lt;&gt;这样的运算符是&lt; =或&gt; =在整数变量中使用。
要检查空值,您应该使用:
if($a == 'null') or if (isset($a))
两者都会起作用。