Ternärer Operator – if-else in Kurzform

Der ternäre Operator ist sicherlich vielen bekannt und je nach Vorliebe verhasst oder beliebt:

Kurz gesagt: hinter dem Fragezeichen in der Kurzform steht die Anweisung oder Zuordnung die ausgeführt wird, wenn die Bedingung $a == 1  wahr ist. Hinter dem Doppelpunkt steht dann dementsprechend das Gegenstück, also das was passiert wenn die Bedingung falsch ist. Die Klammerung im obigen Beispiel ist optional.

Sonderfälle bei der Anwendung des ternären Operators:

Wird nur abgefragt, ob ein Wert vorhanden ist (nicht empty , NULL , '0'  oder false) ohne diesen mit einem konkreten Gegenstück zu vergleichen, so kann die o.g. Schreibweise weiter verkürzt werden:

Sollte $a  nicht definiert sein, so wird ein E_WARNING ausgegeben – und damit kommen wir auch schon zum zweiten Sonderfall. Soll die Ausgabe des E_WARNING  verhindert werden, wäre eine zusätzliche Prüfung isset($a)  erforderlich. Diese Verkettung von Operationen wiederum verhindert die Nutzung der Kurzform. Beispiel:

Das erste obere Beispiel gibt true zurück, falls $a  definiert ist und nicht empty , NULL , '0'  oder false. Gewollt war in diesem Fall aber, den Wert von $a auszugeben (Beispiel 2). Das ist mit der Anweisung ??  zu erreichen (Beispiel 3).

Übersichtlichkeit im Code

Um den Quelltext übersichtlich zu gestalten gibt es hier mehrere Möglichkeiten, die der Situation entsprechend genutzt werden können.

Mehrere Zuweisungen mit ternärem Operator, hier ist u.U. eine mit Tabs eingerückte Schreibweise vorteilhaft:

Bei einzelnen Zuordnungen bevorzuge ich die Schreibform in mehreren Zeilen:

Verkettung von mehreren Operationen:

Die mehrfache/verkettete Verwendung kann zu schwer les- bzw. interpretierbarem Code führen, daher hier nur der Vollständigkeit halber. Anweisungen müssen hierbei in Klammern eingefasst sein, damit korrekt damit umgegangen wird:

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.