可能重复:
为什么一些有经验的程序员会在变量之前写入比较值?
我只是对此感到好奇:在我研究过的大多数框架/开源项目中,我经常看到这样的代码......
<?php
if (null === self::$_instance) {
self::$_instance = new self();
}
Run Code Online (Sandbox Code Playgroud)
特别是这条线......
if (null === self::$_instance) {
Run Code Online (Sandbox Code Playgroud)
为什么null在if声明的第一个参数中使用而不是相反?...
if (self::$_instance === null) {
Run Code Online (Sandbox Code Playgroud)
我意识到可能没有性能提升或类似的东西.这只是一种偏好还是我忽略了某种编码标准?
kni*_*ttl 14
它可以防止您意外地将值赋给变量,尤其是在仅使用松散类型比较(==)时:
if (self::$_instance = NULL) { … } // WHOOPS!, self::$_instance is now NULL
Run Code Online (Sandbox Code Playgroud)
这种条件通常被称为尤达条件.性能方面没有区别,两个陈述都是等价的.