Php 以这种方式排序if语句的原因是什么?

Php 以这种方式排序if语句的原因是什么?,php,if-statement,code-formatting,operator-precedence,Php,If Statement,Code Formatting,Operator Precedence,为什么要形成if语句,比如 if (null === $this->foo){...} if (0 === count($bar)){...} 而不是 if ($this->foo === null){...} if (count($bar) === 0){...} 我在许多我尊敬的程序员和项目的代码中注意到了这一点,但我不知道他们为什么这样做。我用第二种方法来做,因为它遵循了我的想法“如果这个值与null相同,那么…”,而询问“null是否与这个值相同…”对我来说似乎不那么明显

为什么要形成
if
语句,比如

if (null === $this->foo){...}
if (0 === count($bar)){...}
而不是

if ($this->foo === null){...}
if (count($bar) === 0){...}

我在许多我尊敬的程序员和项目的代码中注意到了这一点,但我不知道他们为什么这样做。我用第二种方法来做,因为它遵循了我的想法“如果这个值与null相同,那么…”,而询问“null是否与这个值相同…”对我来说似乎不那么明显。所以为什么?

这是为了确保您不会意外地将if(this->foo=null)而不是double==

这是一个PHP将自动为您捕获的错误

if (null = $foo) {}
虽然这可能是一个错误(尽管有时可能是故意的和有用的)


因此,通过以这种方式对条件进行排序,您可以避免意外地赋值而不是比较它们。

是的。。。然而,我通常不会这样做,即使我知道我应该:-/@KingCrunch我很喜欢“尤达条件”这个标签
if ($foo = null) {}