Почему чистый код запрещает другое выражение
У меня есть этот код в функции:
if ($route !== null) { // a route was found
$route->dispatch();
} else {
// show 404 page
$this->showErrorPage(404);
}
Теперь PHPmd выдает сообщение об ошибке:
Прогон метода использует выражение else. Else никогда не является необходимым и вы можете упростить работу кода без работы.
Теперь мне интересно, действительно ли это был бы лучший код, чтобы избежать else и просто добавить оператор return в часть if?
Ответы
Ответ 1
Я бы не стал беспокоиться о том, что говорит PHPmd, по крайней мере в этом случае.
Вероятно, они предназначены для использования условного оператора, потому что (по их мнению) его "чище".
$route !== null ? $route->dispatch() : $this->showErrorPage(404) ;
Ответ 2
PHPMD ожидает, что вы используете оператор раннего возврата, чтобы избежать блокировки else. Что-то вроде следующего.
function foo($access)
{
if ($access) {
return true;
}
return false;
}
Вы можете подавить это предупреждение, добавив следующее в блок класса doc.
/**
* @SuppressWarnings(PHPMD.ElseExpression)
*/