2015-09-20 12 views
10

Mam ten kod w funkcję:Dlaczego czysty kod zabronić else wyrażenie

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

Teraz PHPmd daje błąd:

The method run uses an else expression. Else is never necessary and you can simplify the code to work without else.

Teraz zastanawiam się, czy to naprawdę byłoby lepiej kod aby uniknąć innych i po prostu dodać instrukcję return do części if?

Odpowiedz

1

Nie martwiłbym się tym, co mówi PHPmd, przynajmniej w tym przypadku.

Prawdopodobnie zamierzali użyć operatora warunkowego, ponieważ (ich zdaniem) jest on "czystszy".

$route !== null ? $route->dispatch() : $this->showErrorPage(404) ; 
+0

Czy jest coś lepszego niż phpMD? – Pascal

+1

Uczenie się na http://www.phptherightway.com/ jest często sugerowane przez wielu programistów –

25

PHPMD oczekuje użycia instrukcji early return, aby uniknąć bloku else. Coś jak poniżej.

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

    return false; 
} 

Możesz wyłączyć to ostrzeżenie, dodając następujące elementy do swojego bloku doc.

/** 
* @SuppressWarnings(PHPMD.ElseExpression) 
*/ 
Powiązane problemy