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) {}