'!='和'<>'之间的区别PHP中的运算符

时间:2011-12-23 10:53:32

标签: php operators

  

可能重复:
  What's the difference between “<>” and “!=”?

PHP中的运算符!=<>之间有什么区别?我需要检查变量是否不等于NULL。我应该使用哪种运营商?

4 个答案:

答案 0 :(得分:5)

这两个运营商之间没有区别。

要检查NULL,您可能希望使用身份运算符===代替,但是:

$a = 0;

if ($a == NULL) {
   // executes
}

上述条件实际上评估为真。但是,使用身份运算符,您可以检查变量是否真的 NULL(或者还有:TRUEFALSE或其他任何内容,您需要检查其实际值和先前类型转换的结果)。希望这是有道理的。

编辑:要实际回答问题并参考我的咆哮,为了检查变量是否 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的第一个结果:

http://php.net/manual/en/function.is-null.php

答案 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)) 

两者都会起作用。