一些编码准则规定您应该将要测试的变量放在条件的末尾:
// Incorrect
if($isSomething === FALSE) { // Do something }
// Correct
if(FALSE === $isSomething) { // Do something }
我知道有些程序员有在这样的条件下初始化变量的坏习惯:
if($results = $db->getResults() { // Do something if results exist }
所以我能想到的拥有这个违反直觉的规则的唯一原因是防止错误的重新初始化,以防万一您在 PHP 中不小心使用了一个等号 (=) 而不是两个等号。
还有其他原因吗?
最佳答案
你不能在你想比较的情况下意外地赋值。 这使得查找小错误变得更加容易。
if (FALSE = $isSomething)
将抛出错误,因为您无法重新分配常量
然而
if ($isSomething = FALSE)
将始终返回 true,您可能很长一段时间都不会注意到该错误。
关于php - 为什么一些编码指南会更改 PHP if/else 中的条件顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10163429/