- 此问题在此处已有答案**:
Difference between "not equal" operators <> and != in PHP(5个答案)
九年前就关门了。
在PHP中检查不相等(不检查类型),你可以这样做:
if( A != B ) {
DO SOMETHING;
}
但是你也可以这样做,结果是一样的:
if( A <> B ) {
DO SOMETHING;
}
有什么区别吗?
在<>
上使用!=
是否会以任何方式、形状或形式改变评估?
Difference between "not equal" operators <> and != in PHP(5个答案)
九年前就关门了。
在PHP中检查不相等(不检查类型),你可以这样做:
if( A != B ) {
DO SOMETHING;
}
但是你也可以这样做,结果是一样的:
if( A <> B ) {
DO SOMETHING;
}
有什么区别吗?
在<>
上使用!=
是否会以任何方式、形状或形式改变评估?
7条答案
按热度按时间fsi0uk1n1#
暂时忘记文档,让我们来看看源代码。让我们从扫描器(lexer)开始:
所以它们解析到相同的标记。让我们看看解析器:
我们知道触发的操作码是
ZEND_IS_NOT_EQUAL
...现在,让我们来看看操作:
所以实际上没有什么区别,因为它们解析到相同的令牌,所以它们具有完全相同的优先级,因为它们使用相同的执行器,并且在操作码例程中没有决策点,所以它们执行相同的代码。
因此,
<>
和!=
是100%可互换的,绝对没有技术上的理由使用一个而不是另一个。因此,我建议你坚持使用
!=
,并且一直使用下去...aoyhnmkz2#
没有区别。
但是,
!=
允许更容易地添加额外的=
以强制进行类型比较。noj0wjuj3#
一个旧的,一个新的。
according to the manual:
使用
!=
。They have the same order of precedence.
g52tjvyc4#
正如在documentation website中提到的,
<>
和!=
只是同义词,这意味着它们是完全可以互换的. php的历史有点混乱,所以命名约定,甚至到了如何调用操作符的程度,过去和现在都没有真正统一。vs3odd8k5#
根据PHP手册:http://fr.php.net/manual/en/language.operators.comparison.php它似乎没有任何区别。
gojuced76#
没有区别。我猜〈〉是在php的一个更高版本中添加的。有点让我想起Python。我认为使用AND或&&作为and操作符也是一样的
6psbrbz97#
这没有什么不同,但我想我记得!=曾经更快,因为我运行了一个测试,发现〈〉正在执行我正在比较的对象的“diff”方法,这可能比“compare”方法慢。