2

为什么在下面的 PHP 代码中反向进行布尔求值,而不是在末尾放置“false”?

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

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

我在其他地方看到过这种写评估的方式,但从来没有真正理解为什么会这样。我从来没有学过计算机科学,所以这可能是一个真正的 101 问题。

4

1 回答 1

7

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

例如

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

// fatal error, you know that you did = instead of ==
if(false = $value)
于 2013-02-28T17:45:46.163 回答