PHP中"不等于"运算符<>和!=的区别

66

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

我猜差别不会很大,但我很好奇。


3
事实上,大多数人在PHP中并不使用<>作为非等操作符,尽管它是允许的 :-) - prodigitalson
2
"!=" 可能更常见... - Felix Kling
@大家好,速度有什么区别吗?(虽然可能没有显著的区别) - Trufa
可能是什么是非等号检查运算符<>和!=之间的区别?的重复问题。 - Bernhard Barker
2
<> 可能对于 VBA、Pascal 或 Excel 程序员来说很方便。 - PaulH
显示剩余2条评论
5个回答

68
在主要的Zend实现中没有任何区别。您可以从PHP语言scannerFlex描述中获取它:
<ST_IN_SCRIPTING>"!="|"<>" {
    return T_IS_NOT_EQUAL;
}
< p>这里生成的令牌是T_IS_NOT_EQUAL。因此,Bison parser无法区分<>!=令牌,并将它们等同处理:

%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

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


7

<> 表示大于或小于。 != 表示不等于。 它们基本上是指同一件事。


6

众所周知,它们是相同的,一个来自一种语言分支C-style/shell,另一个来自其他一些包括MySQL在内的高度集成的语言。

<> 应被视为语法糖,表示不等于的 PHP 正确写法的同义词 !=

这一点还可以通过三个字符组成的恒等函数 !== 进一步强调。


3

运算符<>!=是相同的。

然而,就风格而言,我更喜欢在处理数字变量时使用<>

也就是说,如果:

  • $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都是数字,而不是有意地成为一个或两个字符串


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接