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

问题描述:

我刚好在一块PHP代码,跌跌撞撞,可以看到作者用<>做了不等于比较:为什么PHP有两个“不等于”运算符(=和<>!)

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

我一直使用!=

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

是否有任何特殊情况下,我应该在!=使用<>

+1

从来不知道你能做到在PHP – dassouki 2009-08-11 16:49:23

我猜<>运营商已经在PHP中实现,因为它存在于其他一些语言(SQL,例如)

两个<>和=平均几乎一模一样:在唯一的区别,我设法找到与它们的优先级:看Operator Precedence:他们不是在同一行^^ (这意味着有区别,毕竟,这两个之间)

虽然,我必须承认我有n曾见过PHP中使用的<>。

请注意,人们通常使用!=;你应该这样做:它会让你的代码更易于理解。

而且,顺便说一句,你也有!==运算符,它也进行类型比较;但没有< < >>操作或类似的东西^^


作为参考:Comparison Operators

+0

我同意你关于使代码更容易理解。 – TigerTiger 2009-08-11 19:20:52

+0

其实,我没有坦白:我甚至没有记得在PHP中有一个运算符^^我甚至测试过你的代码以确保它能正常工作^^在某些源代码中使用它会明显感到奇怪! (我想我很久以前就在手册中看到过它......但是甚至没有记得^^) – 2009-08-11 19:33:34

+1

他们***是*** [在同一行](http://php.net/手动/ EN/language.operators.precedence。PHP)(当你回答时可能会有不同的优先级)。 – 2013-02-12 19:14:09

我相信当PHP第一次开发,设计目标之一是使语言灵活,这就是为什么他们在每一个环型和你可能想到的所有运营商带来的类型。

<>!=in terms of precedence类别略有不同,但它们之间的操作符意味着没有任何实际区别。

好问题。他们是一样的,除了一个细微的差别:<> has higher precedence than !=

为什么呢?只是为了让事情按照你的预期工作。 PHP是被借用的想法的混搭,并且C程序员可能更喜欢$foo != $bar,那么拥有BASIC背景的人可能会发现$foo <> $bar更容易。每一个给自己!

+0

啊我看到..至少有“一些“ 区别。 ;-) – TigerTiger 2009-08-11 16:42:27

他们有非常接近,但略有different precedences,但我看不到任何时候,这将是有益的。

+0

只是好奇 – TigerTiger 2009-08-11 16:43:32