PHP Tutorial – Schritt 9: Switch in PHP

Nimmt die Prüfung von gewissen Bedingungen in PHP eine gewisse Anzahl an, so ist man mit Switch eindeutig besser bedient. Natürlich bleibt es dir selbst überlassen was du bei deinem Code einsetzt, manche mögen hauptsächlich If-Bedingungen, andere arbeiten fast ausschließlich mit Switch. Was genau Switch macht, erkläre ich dir in diesem Artikel:

|

Das Grundgerüst einer Switch Anweisung:

<?php

switch(Variable)
{
  case (Bedingung 1):
  Anweisung 1
  break;

  case (Bedingung 2):
  Anweisung 2
  break;

  ...

}

?>

|

In der ersten Zeile wird die Variable definiert, die wir in den Switch Bedingungen prüfen wollen:

switch(Variable)

|

Diese muss natürlich vorher in irgendeiner Art und Weise definiert worden sein. Wir sehen uns das später im Beispiel an. Danach wird die erste geschweifte Klammer eröffnet ({). Nun ist folgen alle Case-Bedingungen die man abfangen möchte:

  case (Bedingung):
  Anweisung
  break;

|

Wichtig ist dabei, dass die Case-Zeile mit einem Doppelpunkt (:) beendet wird. Danach kannst du dich mit den jeweiligen Anweisungen, wie du es bereits von den vorherigen Beiträgen kennst, austoben (echo, andere If-Anweisungen, etc.). Am Ende der Case-Bedingung kommt ein “break;” – sprich es wird PHP mitgeteilt, dass hier das Ende der jeweiligen Bedingung & Anweisung erreicht ist und keine Prüfung mehr vorgenommen werden soll.

|

Du kannst übrigens so viele Case-Bedingungen definieren, wie du möchtest. Beachte allerdings stets, dass sobald eine Bedingung zutrifft, die anderen nicht mehr durchlaufen werden.

Sollte übrigens keine Case-Bedingung zutreffen, so empfiehlt es sich, einen Standard-Case am Ende zu definieren:

  default:
  Anweisung
  break;

|

Switch dich durch

Du kannst übrigens mehrere Case-Bedingungen mit einer Anweisung versorgen:

 case (Bedingung 1):
 case (Bedingung 2):
 case (Bedingung ...):
  Anweisung
  break;

|

So, sehen wir uns doch mal ein komplettes Beispiel an:

<?php

# Wir arbeiten nun nur mit einer Variable
# Ändere ihren Wert um die Auswirkungen zu kontrollieren
$zahl1 = 34;


switch($zahl1)
{
	case (19):
	case ($zahl1 <30):
  echo "Du bist 19 oder kleiner 30";
  echo "<br />";
  echo "Ich pürfe noch weiter...<br />";
  If ($zahl1 == 19)
  {
	  echo "Du bist genau 19 :)";
  }
	Else
	{
		echo "Du bist sicher nicht 19";
	}
  break;
	
	case (34):
	echo "Du bist genau 34";
	break;
 
  default:
  echo "Nein, du bist sicher größer oder gleich als 30";
  break;
}

?>

|

In diesem Beispiel haben wir mehrere Case-Bedingungen, inklusive einer zusätzlichen If-Abfrage und einer Default-Anweisung. Ganz am Anfang wird übrigens auch die Variable definiert, die wir in dieser Switch Anweisung prüfen:

$zahl1 = 34;

|

Danach eröffnen wir die Switch Anweisung und teilen PHP mit, welche Variable wir eigentlich prüfen wollen:

switch($zahl1)
{

|

Die erste Case-Bedingung ist etwas größer (aber nicht komplexer):

	case (19):
	case ($zahl1 <30):
  echo "Du bist 19 oder kleiner 30";
  echo "<br />";
  echo "Ich prüfe noch weiter...<br />";
  If ($zahl1 == 19)
  {
	  echo "Du bist genau 19 :)";
  }
	Else
	{
		echo "Du bist sicher nicht 19";
	}
  break;

|

Wir prüfen lediglich ob die Variable $zahl1 genau 19 oder kleiner (nicht gleich) 30 ist:

	case (19):
	case ($zahl1 <30):

|

Wenn ja, dann gib folgende echo-Befehle aus:

  echo "Du bist 19 oder kleiner 30";
  echo "<br />";
  echo "Ich prüfe noch weiter...<br />";

|

…und mache noch zusätzlich eine If-Abfrage:

  If ($zahl1 == 19)
  {
	  echo "Du bist genau 19 :)";
  }
	Else
	{
		echo "Du bist sicher nicht 19";
	}

|

Nämlich jene, ob die Variable $zahl1 wirklich genau 19 ist (Ist-Gleich Vergleichsoperator (==)), je nach Ergebnis wird eine andere Ausgabe erzeugt.

Achtung: Nicht vergessen die Case-Bedingung mit einem “break;” zu schliessen!

|

Die nächste Case-Prüfung erfragt einfach ob die Variable $zahl1 vielleicht genau 34 ist:

	case (34):
	echo "Du bist genau 34";
	break;

|

Trifft gar nichts von all dem zu, so tritt die Default-Case Anweisung in Kraft:

  default:
  echo "Nein, du bist sicher größer oder gleich als 30";
  break;

|

Am Ende ist die Switch Anweisung auch wieder zu schliessen:

}

|

Jetzt muss ich dich leider enttäuschen, denn auch dieses Tutorial ist schon wieder zu Ende. Du kennst nun auch die Switch-Anweisung in PHP, die neben der If-Anweisung ein sehr mächtiges Werkzeug ist. Um diese Werkzeuge jedoch noch effizienter zu machen, holen wir uns nun die logischen Operatoren dazu.

|