PHP中“不相等”运算符<>和!=之间的区别

在PHP中, !=<>运算符有什么不同?

在手册中,它指出:

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

我想这并没有太大的区别,但我很好奇。


在Zend的主要实现中,没有任何区别。 您可以从PHP语言扫描器的Flex描述中获得它:

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

其中T_IS_NOT_EQUAL是生成的令牌。 所以Bison解析器不会区分<>!=令牌并将它们同等对待:

%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

正如接受的答案所指出的那样,实现是相同的,但是它们在文档中存在细微的差别......

根据此页面, <>运算符的优先级略高于!=

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

更新:文档已更新, <>!=之间不再有任何区别。


他们是一样的。 然而,也有!=====运算符测试精确的相等性,由值和类型定义。

链接地址: http://www.djcxy.com/p/10049.html

上一篇: Difference between "not equal" operators <> and != in PHP

下一篇: Comparing Performance in Python: equal versus non equal