PHP Coding Standard

Logo: PHP
37. Richtig und Falsch 1: Klammern setzen und Abkürzungen

Es ist sehr beliebt, bestimmte Klammern nicht zu setzen, wenn es schnell gehen muss. "Hauptsache es läuft" ist eine fatale Einstellung für gute und strukturierte Programmierung.

Ungültig
   if (15 > 9)
      if (isset($hl))
         $string = 'TEST'
   else
      $text = 'test';

Wer liest bei der Variable "h1"? Ist es wirklich "h1"? Nein, es ist "hl". Wofür steht "hl"? Für Hyperlink. Es macht keinen Sinn ein so kurzes Wort abzukürzen, es erhöht nur die Verwirrung für einen anderen Programmierer, der diese Zeilen liest.

Fatal an dem ungültigen Beispiel ist die Art der Einrückung. Es wird vom "Dangling Else" gesprochen. Der Einrückung nach gehört das ELSE zum ersten IF, aber in Wirklichkeit gehört es zum zweiten IF.

So etwas kann leicht entstehen, wenn das Team sich nicht einig ist, ob Tabulatoren oder Leerzeichen zum Einrücken verwendet werden.

Ungültig
   if (15 > 9) {
      if (isset($hl)) {
         $string = 'TEST';
      }
   else {
      $text = 'test';
   }
   }

Obwohl die Klammern jetzt gesetzt sind, wird man bei den letzten beiden Zeilen stutzig. Ein weiterer Grund, warum ich den Allman-Stil bevorzuge.

Gültig
   if (15 > 9)
   {
      if (isset($hyperlink))
      {
         $string = 'TEST';
      }
      else
      {
         $text = 'test';
      }
   }

Selbst wenn das ELSE hier falsch eingerückt wäre, könnte man die Blöcke direkt zuordnen. So bilden Klammern und Inhalt eine Einheit.