为什么PHP有两个“不等于”运算符(!=和<>)

时间:2009-08-11 16:37:19

标签: php comparison-operators

我偶然偶然发现了一段PHP代码,并且可以看到作者使用<>做了一个不等于比较的内容:

if ($variable <> "") {
    echo "Hello, I am having some value";
} 

我一直使用!=

if ($variable != "") {
    echo "Hello, I am having some value";
} 

当我使用<>而不是!=时,是否有特殊情况?

4 个答案:

答案 0 :(得分:4)

我相信当PHP首次开发时,其中一个设计目标是使语言变得灵活,这就是为什么它们引入了每种循环类型以及您可能想到的每种操作符类型。

<>!= in terms of precedence类别略有不同,但介于它们之间的运算符意味着没有任何实际差异。

答案 1 :(得分:3)

好问题。它们是相同的,除了一个微妙的区别:<> has higher precedence than !=

为什么有他们?只是为了让事情按照你的预期运作。 PHP是一个借来的想法,并且C程序员可能更喜欢$foo != $bar,具有BASIC背景的人可能会更容易发现$foo <> $bar。各自为自己!

答案 2 :(得分:3)

我想&lt;&gt;运算符已在PHP中实现,因为它存在于其他一些语言中(例如,SQL)

两者都&lt;&gt;和!=意味着几乎完全相同:我设法找到的唯一区别与它们的优先级有关:请参阅Operator Precedence:它们不在同一行^^ (这意味着两者之间存在差异)

虽然,我不得不承认我从未见过&lt;&gt;用于PHP。

注意人们一般都会使用!=;你可能应该这样做:它会让你的代码更容易理解。

顺便说一句,你也有!==运算符,它也进行类型比较;但是没有&lt;&lt;&gt;&gt;运营商或类似的东西^^


作为参考:Comparison Operators

答案 3 :(得分:1)

它们非常近,但略微different precedences,但我看不出任何有用的时间。