反向布尔评估

时间:2013-02-28 17:43:29

标签: php coding-style boolean evaluation operator-precedence

为什么布尔评估在以下PHP代码中反向完成,而不是在结尾处放置“false”?

while (false !== ($obj = readdir($dh))) {
    // do something
}

(来自http://php.net/manual/en/function.unlink.php中的一个用户示例)

我已经看到了在其他地方编写评估的方式,但从未真正理解为什么要这样做。我从未学过计算机科学,所以这可能是一个真正的问题。

1 个答案:

答案 0 :(得分:7)

个人偏好,因此您不会错误地分配值而不是进行比较。

例如

// doesn't generate an error, hard to track
if($value = false)
...

// fatal error, you know that you did = instead of ==
if(false = $value)