Trinitäts-Operator

Aus php bar
Wechseln zu: Navigation, Suche

Der Trinitäts-Operator (engl. Ternary-Operator), ist ein Ausdruck, der eine Fallunterscheidung beinhaltet. Dies stellt eine besonders verkürzte Kombination aus Zuweisung und Abfrage dar.

Kurz:

1 $foo = $aussage ? $wennWahr : $wennFalsch;


Wenn $aussage WAHR ist, dann wird $wennWahr zurückgegeben, ansonsten wird $wennFalsch zurückgegeben. Auf diese Weise lassen sich Ausgaben und Zuweisungen, die zwischen zwei einzelnen (nicht mehr) Argumenten variieren, in Kurzform darstellen.

Der Trinitäts-Operator ist eine Kurschreibweise für folgende Konstruktion.

1 // Trinität
2 $foo = $aussage ? $wennWahr : $wennFalsch;
3 // Ausgeschriebene Form
4 


Beispiel:

1 // normal
2 '+''-';
3 }
4 
5 // kurz
6 '+''-';
7 
8 // noch kuerzer
9 '+' : '-';


Folgendes ist auch möglich:

1 // if-Methode
2 'w00t''d00d');
3 }
4 
5 // kurz, da nur ein Befehl pro Zweig ausgefuehrt wird, kann man die geschweiften Klammer weglassen
6 'w00t''d00d');
7 
8 // noch kürzer
9 $success ? func1('w00t') : func2('d00d');


Shortcut (ab PHP 5.3)

Ab PHP 5.3 gibt es auch eine Kurzform des ?:-Operators:

1 


In dieser Form wird $a ausgewertet. Wenn $a einen wahren Wert ergibt wird $a zurück gegeben, ansonsten $b. Eine identische Langform wäre

1 


Dabei ist zu beachten, dass die Prüfung des ersten Operanden nicht der durch isset()/empty() entspricht sondern eines normalen bool'schen Vergleiches. Folgender Code führt daher zu einem E_STRICT Fehler, wenn die Variable nicht gesetz wurde:

1 span class="st0">'id'] ?: 0;


Wenn die Fehlermeldung mit dem @-Operator unterdrückt wird kann dieser Shortcut genutzt werden um dieExistenz von Request-Variablen zu prüfen und andernfalls auf default-Werte zurück zu fallen.

siehe auch

Links