Switch

Im Kapitel zu if, else if, else habe ich schon angesprochen, dass man statt einer Reihe von „else if“-Abfragen besser ein Switch-Konstrukt nutzt.

<?php
	switch($zahl) {
		case 0:
			echo 'Durch 0 darf man nicht teilen';
			break;
		case 1:
			echo 'Die Zahl 1 ist sehr klein';
			break;
		case 99999:
			echo 'Das ist eine sehr große Zahl';
			echo 'kurz vor hunderttausend';
			break;
	}
?>

Switch ist dafür gedacht, eine Variable auf mehrere Werte zu prüfen und für den jeweiligen Wert, einen unterschiedlichen Code auszuführen. Das selbe könnte man auch mit mehreren „else if“-Abfragen bewerkstelligen, doch switch ist dafür aufgrund seiner Struktur übersichtlicher. Der Code ist schnell erklärt:

  • switch erwartet eine Variable und prüft dann den Wert
  • für jeden Wert kann ein „case“ angelegt werden
  • das „break;“ nach jeder Anweisung besagt, dass die Switch-Abfrage beendet wird, wenn ein Wert gefunden wurde
  • nach einem „case“ können ein- und mehrzeilige Anweisungen folgen

„default“ ersetzt „else“ in der Switch Anweisung

Auch für die Switch Anweisung gibt es eine „else“ Bedingung doch hier heißt sie „default“:

<?php
	switch($zahl) {
		case 0:
			echo 'Zahl 0';
			break;
		case 1:
			echo 'Zahl 1';
			break;
		default:
			echo 'Eine Zahl ungleich 0 oder 1';
	}
?>

Default steht am Ende nach allen „case“-Anweisungen und muss auch nicht mit einem break geschlossen werden, da die Switch-Anweisung an dieser Stelle sowieso zuende ist.

Natürlich kann man nicht nur Zahlen sondern auch Strings prüfen:

<?php
	switch($name) {
		case 'Lisa':
			echo 'Lisa ist ein schöner Name';
			break;
		case 'Laura':
			echo 'Hey Laura, ebenfalls ein schöner Name';
			break;
		default:
			echo 'Auch dein Name ist schön, '.$name;
	}
?>

Warum die Switch Anweisung verwenden?

Es gibt eigentlich nur 2 Gründe:

  1. bei vielen „case“-Anweisungen kann switch schneller sein als mehrere „else if“-Anweisungen
  2. in manchen Fällen ist es übersichtlicher, gerade wenn man viele „case“-Anweisungen hat, bzw eine Variable auf viele unterschiedliche Fälle prüfen möchte (z.b. welche Taste wurde gedrückt: „oben“, „unten“, „links“, „rechts“, „space“, „enter“, etc.)

hier geht's weiter...



Feedback Formular