为什么干净的代码禁止其他表达

时间:2015-09-20 07:48:42

标签: php phpmd

我在函数中有这段代码:

if ($route !== null) { // a route was found
    $route->dispatch();
} else {
    // show 404 page
    $this->showErrorPage(404);
}

现在PHPmd出错了:

  

run方法使用else表达式。否则从来没有必要   您可以简化代码,无需其他工作。

现在我想知道是否真的会更好的代码来避免使用else而只是在if部分添加一个return语句?

3 个答案:

答案 0 :(得分:31)

PHPMD希望您使用早期的return语句来避免else阻塞。如下所示。

function foo($access) 
{
    if ($access) {
        return true;
    }

    return false;
}

您可以通过将以下内容添加到类doc块来禁止显示此警告。

/**
 * @SuppressWarnings(PHPMD.ElseExpression)
 */

答案 1 :(得分:0)

通常,您可以重写表达式以仅使用if,并且它在主观上确实使代码更具可读性。

例如,如果showErrorPage中断了代码的执行,则该代码的行为将相同。

rameez=np.arange(10*3*2).reshape(10,3,2)

如果if语句的内容没有中断执行,则可以添加一个返回值

if ($route == null) { 

   $this->showErrorPage(404);
} 
$route->dispatch();

如果您在循环中的哪个位置,则可以使用Continue跳过该迭代

if ($route == null) { 

   $this->showErrorPage(404);
   return;
} 
$route->dispatch();

答案 2 :(得分:0)

通过结束404产生分支来删除else块:

if ($route === null) { 
  // show 404 page
  $this->showErrorPage(404);
  return;
}

// a route was found
$route->dispatch();