2010-11-27 83 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風格。

進一步強調三重字符識別功能!==

相關問題