以这种方式订购if语句的原因是什么?

Lot*_*har 4 php if-statement code-formatting operator-precedence

为什么要形成if像...

if (null === $this->foo){...}
if (0 === count($bar)){...}
Run Code Online (Sandbox Code Playgroud)

而不是...

if ($this->foo === null){...}
if (count($bar) === 0){...}
Run Code Online (Sandbox Code Playgroud)

我在很多编码器和项目的代码中都注意到了这一点,但是我不知道为什么他们这样做.我是第二种方式,因为它遵循我的想法"如果这个值与null相同然后......"而询问"如果null与此值相同......"对我来说似乎有点不太明显.所以为什么?

El *_*obo 16

它旨在确保您不会意外地将if(this-> foo = null)而不是double ==.

这是PHP将自动捕获的错误

if (null = $foo) {}
Run Code Online (Sandbox Code Playgroud)

虽然这可能是一个错误(虽然它有时可能是故意的和有用的)

if ($foo = null) {}
Run Code Online (Sandbox Code Playgroud)

因此,通过以这种方式命令您的条件,您可以保护自己不会意外地分配值而不是比较它们.