在PHP中首先使用null有什么好处吗?

Jas*_*vis 12 php syntax

可能重复:
为什么一些有经验的程序员会在变量之前写入比较值?

我只是对此感到好奇:在我研究过的大多数框架/开源项目中,我经常看到这样的代码......

<?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)

为什么nullif声明的第一个参数中使用而不是相反?...

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)

这种条件通常被称为尤达条件.性能方面没有区别,两个陈述都是等价的.


Mar*_*ade 6

这主要是为了防止意外分配:

if (self::$_instance = null) ... //oops!
Run Code Online (Sandbox Code Playgroud)