Sie sind hier: Startseite -> PHP-Grundlagen -> Switch-Abfrage

Switch-Abfrage in PHP für Schleifen nutzen

Schleife mit vielen Antwortmöglichkeiten

Mit der Konstruktion if-elseif-else kann man sehr viele Situationen in PHP-Skripte abfragen, aber diese Konstruktion ist nicht der einzige Weg. Eine schöne Alternative ist die Switch-Abfrage, die ebenfalls die unterschiedlichsten Varianten zulässt und durchaus auch häufiger benötigt wird.

Sie wird durch den PHP-Befehl switch eingeleitet und in Klammer wird die Variable geschrieben, deren Wert hinterfragt werden soll. Jede Möglichkeit wird durch case (übersetzt: Fall) definiert. Trifft der Fall zu, dann werden die nachfolgenden Befehle ausgeführt, andernfalls wird der nächste Fall untersucht. Trifft kein Fall zu, dann gelten jene Befehle, die mit default als letztes vorgesehen sind.

Mit PHP und switch viele Antwortmöglichkeiten abarbeiten

<?php
$stunde = date("H");
switch ($stunde) {
case 8:
echo "Guten Morgen";
break;
case 12:
echo "Mahlzeit!";
break;
default:
echo "schon so spät?";
}
?>

Das Beispiel zeigt eine Abfragemöglichkeit, bei der die Stunde hinterfragt wird. Ein solches Beispiel habe ich bei der if-elseif-else-Abfrage schon präsentiert. In diesem Fall wird mit switch gearbeitet und nach dem Befehl, der die Variable $stunde zum Inhalt hat, wird mit dem üblichen Block zwischen { und } die Befehlsreihe aufgebaut.

Der erste Fall prüft, ob es die 8. Stunde des Tages gibt und wenn ja, wird ein Morgengruß am Monitor erscheinen. Der zweite Fall prüft, ob es 12 Uhr Mittags ist und wenn ja, gibt es die entsprechende Meldung. Jeder dieser Fälle wird mit dem Befehl "break" abgeschlossen. Trifft kein Fall zu, dann gilt jene Meldung, die unter "default" festgelegt wurde.

Hier sollte die Funktionsweise vom break-Befehl noch erläutert werden. Break übersetzt abbrechen ist die tatsächliche Funktion, die dann zum Tragen kommt, wenn eine Überprüfung positiv abgelaufen ist. Nehmen wir an, dass es tatsächlich 8 Uhr ist (oder 8:15 etc.), dann würde ohne Break - was möglich ist - jede weitere Überprüfung, die danach kommt, durchgeführt werden. Das ist ein Ressourcenverschleiß, der unnötig ist. Daher wird ein break angeschlossen, um die switch-Konstruktion frühzeitig zu verlassen. Funktionieren würde die Konstruktion aber auch ohne break.

if-Abfrage oder switch-Abfrage?

Im Prinzip kann man die if-Abfrage für diese Anwendung gleichfalls verwenden, wobei dies Geschmackssache ist. Viele empfinden die switch-Konstruktion als einfacher und besser lesbar, weil man weniger Klammern am Hals hat. Es ist eine klare, simple Konstruktion, die man einmal durchtesten sollte.

Wenn man es mit wirklich vielen Optionen zu tun hat, dann ist switch-Abfrage tatsächlich deutlich lesbarer und sollte überlegt werden. Die erste Wahl ist meist eine if-Abfrage, weil man oft nur zwei Situationen hat, also entweder-oder und diese ist mit der if-Abfrage sinnvoller. Bei mehr Argumente würde viel für die switch-Abfrage sprechen.

Buchtipp: PHP und MySQL für Einsteiger (Thalia)*
* = Affiliate-Link; bei Kauf unterstützen Sie diese Plattform

Lesen Sie auch

Mit den Variablen kann man in PHP Werte speichern und hat damit wird die Grundbasis gelegt, dynamische Situationen zu realisieren. Die eigentliche PHP-Programmierung erfolgt aber über Abfragen und Schleifen, um auf Situationen reagieren zu können. Die if-Abfrage ist für Entscheidungen sehr oft im Einsatz, kann mit else und elseif sogar erweitert werden.

Eine zweite Option besteht mit der switch-Schleife, durch die verschiedene Situationen auf Basis eines Arguments durchlaufen werden können. Diese kann man noch erweitern durch eine Oder-Verknüpfung und zusätzlich als zweite Variante mit einer Und-Verknüpfung.

Und dann gibt es die while-Schleife, die vor allem im Zusammenhang mit Auswertungen aus der Datenbank oft genutzt wird. Sie kann durch eine do-while-Konstruktion noch verändert werden und alternativ besteht auch die Lösung der for-Schleife.

Themenseiten

Diesen Artikel teilen

Infos zum Artikel

Switch-Abfrage in PHPArtikel-Thema: Switch-Abfrage in PHP für Schleifen nutzen
Beschreibung: Mit ✅ Switch kann man in PHP eine ✅ Schleife programmieren, die auf sehr viele unterschiedliche Situationen Rücksicht nehmen kann.

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel
Praxisartikel