Dass man die switch-Konstruktion mit mehreren Parametern pro Überprüfung ausstatten kann, habe ich Ihnen im letzten Artikel gezeigt. Hier geht es nun um eine wichtige Ergänzung, wodurch Switch mit einer and-Verknüpfung realisiert werden kann.
Die bisher gezeigte Erweiterung mit "case 1: case 2: case 3:" arbeitet als oder-Verknüpfung. Das bedeutet, dass einer der drei Fälle ausreicht, um die Bedingung zu erfüllen. Oft braucht man aber eine Und-Verknüpfung, bei der alle Bedingungen erfüllt sein müssen und das nachstehende Beispiel zeigt, wie dies auch mit der switch-Konstruktion realisiert werden kann.
Webhosting mit viel Software bei Alfahosting (Affiliate-Link)
<?php
$status = 20;
switch (TRUE) {
case ($status > 0 and $status < 4);
echo "eine der niedrigsten Zahlen";
break;
case ($status > 17 and $status < 21);
echo "eine der höchsten Zahlen";
break;
default:
echo "die Zahlen dazwischen";
}
?>
In diesem Fall erhält der switch-Befehl den Zusatz TRUE und hat keine Variabeldefinition. Die Variable wird erst bei der Abfrage durch case genannt und hier kann man mit der altbekannten Und-Verknüpfung zwei Werte abfragen, um so den gelieferten Wert der Variable zu hinterfragen. Die switch-Konstruktion bleibt sonst gleich, auch das default für den Fall, dass keine Abfrage zutrifft, bleibt erhalten.
Diese Variante der switch-Konstruktion bietet sich also als Alternative für die if-Abfrage an, wenn man es mit vielen Möglichkeiten zu tun hat, denn die Konstruktion lässt sich beliebig erweitern.
Vergleicht man die if-Abfrage mit der switch-Abfrage, so wird die if-Abfrage viel öfter eingesetzt, birgt aber zwei Probleme: erstens kann eine umfangreiche Abfragekonstruktion schwer lesbar werden, weil es zahlreiche Klammern zu setzen gilt und gleichzeitig kann ein Fehler bei der Anzahl der Klammern zu einem Syntaxfehler führen und dann arbeitet das Skript gleich gar nicht.
Webhosting bei Alfahosting - jetzt gratis testen! (Affiliate-Link)
Switch kann man dreifach nutzen: mit einem Argument und verschiedenen Situationen, mit mehreren Möglichkeiten als Oder-Argument oder wie in diesem Beispiel gezeigt mit einer Und-Verknüpfung. In Wirklichkeit setzt man fast nur die erste Variante ein, für alle anderen Optionen wählt man in der Regel die if-Abfrage. Das mag auch daran liegen, dass man sprachlich "wenn, dann" sagt und die if-Abfrage diesem sehr nahe kommt, während das switch sich aus dem Alltag nicht unbedingt sofort erschließt.
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
Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen
Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel
Praxisartikel