Switch Statements
Alternativ zum Conditional Statement mit if und else kann man auch ein Switch Statement benutzen. Die Basisstruktur eines Switch Statements besteht aus dem Keyword switch gefolgt von einem Paar Klammern, das den Wert enthält, der getestet werden soll. Es folgen geschweifte Klammern, die den eigentlichen Inhalt des Switch Statements enthalten. Hier steht zunächst das Keyword case gefolgt von dem Wert und einem Doppelpunkt. Wenn der im Switch Statement genannte Fall eintritt, dann wird der nachfolgende Code ausgeführt.
switch($var) { case value1: do this; }
Es wird hiermit das Gleiche erreicht wie bei einem Conditional Statement mit if, bei dem getestet wird, ob $var dem Wert value1 entspricht.
In einem Switch Statement können auch mehrere Werte hintereinander getestet werden, wobei jeder Fall mit einem break; abgeschlossen wird.
switch($var) { case value1: mache dies; break; case value2: mache was anderes; break; default: mache als Standardhandlung das; }
Am Ende kann eine default Option eingefügt werden, die ausgeführt wird, wenn alle anderen genannten Fälle nicht zutreffen. Es können auch mehrere Werte gleichzeitig einer Handlung zugeordnet werden:
switch($var) { case value1: mache dies; break; case value2: case value3: mache was anderes; break; default: mache als Standardhandlung das; }
Dieses Switch Statement erfüllt exakt die gleiche Funktion wie ein Conditional Statement mit elseif
if($var == value1) { mache dies; } elseif($var == value1 || value2) { mache was anderes; } else { mache als Standardhandlung das; }
Bei vielen Optionen kann das Switch Statement übersichtlicher und leichter zu handhaben sein, ansonsten gibt es keine speziellen Vor- oder Nachteile, weshalb man das eine dem anderen vorziehen sollte.
Benutzt man das Switch Statement, so muss man aufpassen, dass man nicht vergisst den break Befehl nach jedem Fall einzufügen. Vergisst man den break Befehl, so wird auch der nachfolgende Code ausgeführt, selbst wenn die nachfolgende Bedingung nicht erfüllt ist, da ohne den break Befehl die nachfolgenden Befehle auch noch für die vorherige Bedingung gelten, die wahr war. Es wird bei Vergessen des break Befehls der gesamte Code bis zum Ende oder bis zum nächsten break Befehl ausgeführt.
Der Ternary Operator
Der Ternary Operator weist der Variablen verschiedene Werte zu, je nachdem ob eine Bedingung wahr oder falsch ist. Die Struktur sieht wie folgt aus:
$var = (condition) ? value if true : value if false;
Der Variablen wird mit dem Gleichheitszeichen eine Bedingung zugewiesen. Es folgt ein Fragezeichen und dann der Wert, für den Fall, dass die Bedingung wahr (true) ist. Danach folgt ein Doppelpunkt und der Wert, falls die Bedingung falsch (false) ist.
Der Ternary Operator ist ebenfalls eine Alternative zum if / else Statment. Das oben genannte Strukturbeispiel würde in einem if / else Statement wie folgt aussehen:
if(condition) { $var = value if true } else { $var = value if false }
Beispiel für den Ternary Operator:
$language = 'englisch'; $gruss = ($language == 'deutsch') ? 'Guten Morgen' : 'Good Morning' ; echo $gruss;
Ausgegeben wird in obigem Beispiel Good Morning