为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
largeQ 2019-10-21 15:04:00
在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 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

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


查看完整回答
反对 回复 2019-10-21
?
浮云间

TA贡献1829条经验 获得超4个赞

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


根据此页面,<>操作员的优先级比略高!=。


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


更新:该文件被更新,不再有任何区别<>和!=。


查看完整回答
反对 回复 2019-10-21
?
Qyouu

TA贡献1786条经验 获得超11个赞

就像每个人都说的一样,一种语言来自C语言风格/ shell,另一种语言来自MySQL,而MySQL在过去已经高度集成。


<>应该被视为语法糖,其同义词!=是不相等的正确PHP样式。


三重字符标识功能进一步强调了这一点!==。


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 894 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信