我在函数中有这个代码:
if ($route !== null) { // a route was found
$route->dispatch();
} else {
// show 404 page
$this->showErrorPage(404);
}
Run Code Online (Sandbox Code Playgroud)
现在PHPmd给出了一个错误:
run方法使用else表达式.否则永远不需要,您可以简化代码,而无需其他工作.
现在我想知道是否真的会更好的代码来避免else而只是在if部分添加一个return语句?
Abi*_*bin 35
PHPMD期望您使用早期的return语句来避免else阻塞.像下面这样的东西.
function foo($access)
{
if ($access) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
您可以通过将以下内容添加到类doc块来禁止显示此警告.
/**
* @SuppressWarnings(PHPMD.ElseExpression)
*/
Run Code Online (Sandbox Code Playgroud)
您通常可以重写表达式以仅使用 if 并且主观上确实使代码更具可读性。
例如,如果 showErrorPage 中断代码的执行,则此代码的行为方式相同。
if ($route == null) {
$this->showErrorPage(404);
}
$route->dispatch();
Run Code Online (Sandbox Code Playgroud)
如果 if 语句的内容没有中断执行,则可以添加 return
if ($route == null) {
$this->showErrorPage(404);
return;
}
$route->dispatch();
Run Code Online (Sandbox Code Playgroud)
如果您在循环中的位置,则可以使用 continue 跳过该迭代
foreach ($things as $thing ) {
if ($thing == null) {
//do stuff and skip loop iteration
continue;
}
//Things written from this point on act as "else"
}
Run Code Online (Sandbox Code Playgroud)
我不会担心 PHPmd 所说的,至少在这种情况下。
他们可能想让你使用条件运算符,因为(在他们看来)它“更干净”。
$route !== null ? $route->dispatch() : $this->showErrorPage(404) ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4292 次 |
| 最近记录: |