Tom*_*Tom 2 php evaluation boolean coding-style operator-precedence
为什么在下面的PHP代码中反向完成布尔值评估,而不是在结尾处放置"false"?
while (false !== ($obj = readdir($dh))) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
(来自http://php.net/manual/en/function.unlink.php中的一个用户示例)
我已经看到了在其他地方编写评估的方式,但从未真正理解为什么要这样做.我从未学过计算机科学,所以这可能是一个真正的问题.
个人偏好,所以你不要错误地分配价值而不是做比较.
例如
// doesn't generate an error, hard to track
if($value = false)
...
Run Code Online (Sandbox Code Playgroud)
但
// fatal error, you know that you did = instead of ==
if(false = $value)
Run Code Online (Sandbox Code Playgroud)