Почему чистый код запрещает другое выражение

У меня есть этот код в функции:

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)
 */