一尘不染

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

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.

我猜没有太大的区别,但我很好奇。


阅读 599

收藏
2020-05-26

共1个答案

一尘不染

在主要的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
2020-05-26