2010-11-27 76 views
48

在PHP中,!=<>运算符之间是否有区别?PHP中的“不等于”运算符<>和!=之间的区别

manual,它指出:

$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. 

我想有没有巨大差异,但我很好奇。

+3

那么事实上,大多数人不使用`<>`作为在PHP中的非平等的操作,即使它允许:-) – prodigitalson 2010-11-27 23:54:52

+1

我不认为有什么区别,但我对答案。对一个有趣的问题+1。 – 2010-11-27 23:55:07

+2

`!=`可能更常见...... – 2010-11-27 23:55:25

回答

57

在Zend的主要实现中没有任何区别。您可以从PHP语言scannerFlex描述得到它:

<ST_IN_SCRIPTING>"!="|"<>" { 
    return T_IS_NOT_EQUAL; 
} 

哪里T_IS_NOT_EQUAL是生成的令牌。所以Bisonparser<>!=标记区分和对待他们同样:

%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL 
%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL 
8

它们是相同的。但也有!=====运算符测试精确的相等性,由值类型定义。

22

由于接受的答案指出实施是相同的,但有是文档 ...

在它们之间的细微差别。根据this page<>运营商具有比!=略微更高的优先级。

我不确定这是Zend实现中的错误,是文档中的错误,还是PHP决定忽略优先规则的其中一种情况。

更新:该文档已更新,<>!=之间不再有任何差异。

5

<>意味着更大或更小。 !=表示不等于。他们基本上是指同一件事。

4

由于大家都在说他们是相同的,一个从一种语言分支C样式/壳,一名来自其他一些包括MySQL这过去高度一体化。

<>应该被认为是句法糖,这是!=的同义词,它是适用于不相等的PHP风格。

进一步强调三重字符识别功能!==

相关问题