Sven Rautenberg: if($display = login($user)) .... Rückgabewert einer Funktion

Beitrag lesen

Moin!

Doppelt negieren und richtig klammern:

if ( !($display = !login()) )

Code wird in der Regel nur einmal geschrieben, aber danach sehr häufig von Programmierern gelesen.

Ich halte absolut nichts davon, eine hohe Kreativität beim Herstellen des Codes zu beweisen, wenn er dadurch unoffensichtlicher und unleserlicher wird. Das passiert insbesondere, wenn man zuviel in eine Codezeile packen will.

Dieser Code ist hinsichtlich des "zuviel in einer Zeile" deutlich besser:

  
$display = !login();  
if (! $display)  

Und dann noch die doppelte Verneinung: Ganz blöd! Und der einzige Grund ist der mangelhafte Variablenname, dem man "Anzeigen? Ja!" aufgedrängt hat, und wenn das Login erfolgreich passiert, will man keine Anzeige.

Umbenennung der Variablen enthebt uns von dem beständigen "nicht-nicht-nicht":

  
$hide = login();  
if ($hide)  

Und schon ist der Code offensichtlicher und leichter zu lesen und zu verstehen. Keine der Änderungen ist funktional notwendig - aber genau darum geht es ja.

- Sven Rautenberg