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

Posted

技术标签:

【中文标题】PHP中“不等于”运算符<>和!=之间的区别【英文标题】:Difference between "not equal" operators <> and != in PHP 【发布时间】:2011-05-16 17:26:01 【问题描述】:

php 中,!=&lt;&gt; 运算符之间有什么区别吗?

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

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

【问题讨论】:

好吧,事实上大多数人不使用&lt;&gt; 作为 php 中不等式的操作,即使它允许 :-) 我认为没有区别,但我对答案很感兴趣。为一个有趣的问题 +1。 != 可能更常见... @prodigitalson 实际上可能是和论点:)(可读性等) &lt;&gt; 可能对 VBA、Pascal 或 Excel 程序员很方便 【参考方案1】:

在 Zend 的主要实现中没有任何区别。可以从PHP语言scanner的Flex描述中获取:

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

其中T_IS_NOT_EQUAL 是生成的令牌。所以Bisonparser 不区分&lt;&gt;!= 标记,一视同仁:

%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

【讨论】:

【参考方案2】:

正如公认的答案所指出的,实现是相同的,但是在文档中它们之间存在细微差别...

根据this page,&lt;&gt; 运算符的优先级略高于!=

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

更新:文档已更新,&lt;&gt;!= 之间不再有任何区别。

【讨论】:

我们来了,所以不同:) 哇我没想到!从这么简单的问题中得到了很好的阅读材料,谢谢先生!正如@karim 所说:有区别! (我可能会补充一点) @Alex,是的,这一定是一个非常特殊的情况! 与 != 具有相同的优先级,因为它们是相同的。它的优先级低于 、=。例如,尝试下一个代码codepad.org/zCdrxYm0,如果&lt;&gt; 运算符与&lt; 具有相同的优先级,则if 语句下的条件将为false,因为1 不小于1(第一个1 表示true PHP 中的值),但由于它的优先级较低,因此首先计算表达式 2 @Trufa:保险箱就是使用括号。我不知道 Vitalii Fedorenko 所描述的确切区别,如果你非常依赖它,它会让你的代码对我来说不太可读。【参考方案3】:

它们是一样的。然而,也有 !===== 运算符用于测试完全相等,由值 类型定义。

【讨论】:

【参考方案4】:

&lt;&gt; 表示更大或更小。 != 表示不相等。它们基本上是同一个意思。

【讨论】:

【参考方案5】:

正如大家所说,它们是相同的,一种来自一种语言分支 C-style/shell,一种来自其他一些语言分支,包括过去高度集成的 mysql

&lt;&gt; 应该被视为语法糖,!= 的同义词,这是不等于的正确 PHP 样式。

三重身份功能!==进一步强调。

【讨论】:

【参考方案6】:

&lt;&gt;!= 运算符完全相同,因为它们都被解析为 T_IS_NOT_EQUAL 令牌。

And they have same precedence.

【讨论】:

【参考方案7】:

&lt;&gt;!= 的操作符是一样的。

但是,就风格而言,在处理数值变量时,我更喜欢使用&lt;&gt;

也就是说,如果:

$a 是一个整数 $b 是一个整数

而不是问:

// if $a is not equal to $b
if ($a != $b)

我会问:

// if $a is either less than or greater than $b
if ($a <> $b)

这是我的代码中的视觉提示/提醒 $a$b 肯定都打算是 数字 而不是一个或两个都是故意 @ 987654330@.

【讨论】:

以上是关于PHP中“不等于”运算符<>和!=之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

PHP运算符<> [重复]

PHP的<>运算符[重复]

20190816

smarty 运算符列表

PHP & MySQL数据库专题 第五课 数据查询

数据库中的条件查询