2015-09-20 9 views
10

Ich habe diesen Code in einer Funktion:Warum sauberen Code verbieten sonst Ausdruck

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

Jetzt PHPmd einen Fehler gibt:

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

Jetzt frage ich mich, ob es wirklich besser Code wäre um das else zu vermeiden und einfach eine return-Anweisung zum if-Teil hinzuzufügen?

Antwort

1

Ich würde mich nicht sorgen, was PHPmd sagt, zumindest in diesem Fall.

Sie wahrscheinlich für Sie, um den bedingten Operator zu verwenden, weil (ihrer Meinung nach) seine "sauberer".

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

Gibt es also etwas besseres als phpMD? – Pascal

+1

Lernen von http://www.phptherightway.com/ wird oft von vielen Programmierern vorgeschlagen –

25

PHPMD erwartet, dass Sie eine frühe return-Anweisung verwenden, um den Else-Block zu vermeiden. Etwas wie das Folgende.

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

    return false; 
} 

Sie können diese Warnung unterdrücken, indem Sie Ihrem Klassendokumentenblock Folgendes hinzufügen.

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