Bernhard: Mehrere vs. ein einziges return

Beitrag lesen

Hi!

Aber was hilft es, zu sehen, dass das return einen Variableninhalt zurückgibt, wenn ich von unten gesehen das Befüllen der Variable im meterlangen Code suchen muss und von oben gesehen den Rest des Codes durchsuchen muss, nur um festzustellen, dass die Variable nicht weiter verwendet wird. Hier kürzt ein klares return die Recherche ab.

Nur dann, wenn du einen konkreten Durchlauf durchspielen willst. Wenn du erfassen willst, was der grundsätzliche Zweck einer Methode ist, wofür sie gedacht ist, was sie tun soll, dann erschweren mehrere returns das Verständnis mMn durchaus.

Und grundsätzlich gilt natürlich: Das Problem bei meterlangen Methoden ist, dass sie meterlang sind. Dieses Problem lässt sich weder durch ein einziges noch durch mehrere returns beheben, sondern nur durch ein Aufteilen des Codes auf mehrere Methoden.

Ist eine Methode angemessen kurz, dann ist sie sicherlich auf beide Arten verständlich; ich empfinde allerdings die Variante mit einem return als eleganter.

Wie immer plädiere ich weder ausschließlich für das eine noch das andere, sondern dafür, mit Verstand zu entscheiden, was im konkreten Fall sinnvoller sein mag.

Ich plädiere für angemessen kurze Methoden, s.o. ;-)

Ja, sinnvoller wäre es, sie ohne das else zu notieren, denn das hat wegen des return im if-Block keine nützliche Funktion mehr.

if(kritische_bedingung_erfuellt) {

return true;
}

return false;

  
Der else-Zweig ist aber auch überflüssig, wenn man nur ein return verwendet:  
  
~~~php
$returnValue = false;  
if(kritische_bedingung_erfuellt) {  
 $returnValue = true;  
}  
return $returnValue;

Abgesehen davon, dass dieses konkrete Beispiel wie schon geschrieben ein schlechtes (return $kritische_bedingung_erfuellt; ist mit Abstand am elegantesten) ist.

Grüße
Bernhard