PHP - reversed order in if statement(PHP - if 语句中的倒序)
问题描述
这个问题困扰了我很久,一直找不到答案...注意到它被 Zend 框架开发人员大量使用,
This is a question that is bugging me for a long time and can't find any answer... Noticed it's used quite a lot by Zend Framework Developers,
以下两个if"语句有什么区别?:
What is the difference between following 2 "if" statements? :
if (null === $this->user) { ... }
if ($this->user === null) { ... }
对我来说第一个看起来有点奇怪;]
To me the first one looks kinda odd ;]
感谢您的回答.
推荐答案
这与您的脚本的工作方式没有区别,它只是一个编码标准,一个建议
This is not a difference for the way your script works, it's just a coding standard, a recommendation
推荐使用这种方式的原因:
The reason why it is recommended to use it this way:
if (null == $this->user)
的事实是,如果你输入错误并写 = 而不是 == 你会得到一个错误,而
is the fact that if you mistype and write = instead of == you will get an error, while
($this->user = null)
代替
($this->user == null)
有效但会导致奇怪的错误(赋值和最终值被评估为 bool 而不是比较)
works but causes weird bugs (assignment and the final value is evaluated as bool instead of comparison)
我猜它只是作为一种习惯扩展到严格比较运算符 (===)
and I guess it just extended as a habit to the strict comparison operator (===)
更新:因为我发现即使在我发布答案 3 年后该线程上仍有一些活动,所以我想我会添加一些我忘记提及的内容.这种类型的符号称为 yoda conditions
,您可以在 this 上阅读有关它的更多信息例如维基百科页面.
Update: since I see that there's still some activity on this thread even 3 years after I posted the answer I figured I would add something I forgot to mention. This type of notation is known as yoda conditions
, you can read more about it on this wikipedia page for example.
这篇关于PHP - if 语句中的倒序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:PHP - if 语句中的倒序
- PHP - if 语句中的倒序 2021-01-01
- PHP foreach() 与数组中的数组? 2022-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01