www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » PHP für Fortgeschrittene » Bedingungen switch

Bedingung switch - case

Über den PHP-Befehl switch können wir eine Kontrollstruktur erstellen – je nachdem welche Anweisung erfüllt ist, wird der nachfolgende Bereich ausgeführt.

Das englisch Wort „switch“ bedeutet „Schalter“. Anders als beim Lichtschalter können mehr als zwei Fälle (englisch Wort „case“) vorkommen.

Schauen wir uns den Aufbau des Befehls an. Bei unserem Befehl switch kommt in Klammern, welche Variable der PHP-Befehl für die Überprüfung nutzen soll:

$x = 1;

switch($x) {
}

Die verschiedenen Fälle werden innerhalb der geschweiften Klammern aufgeführt. Im folgenden Beispiel überprüfen wir im ersten Fall (case), ob die Zahl 1 in der Variablen steht:

$x = 1;

switch($x) {
    case 1:
        echo "Die Zahl ist eins";
}

Das ist der Fall durch die am Anfang gesetzte Variable $x = 1 und wir erhalten als Bildschirmausgabe „Die Zahl ist eins“.

Erweitern wir es um einen zweiten Fall und überprüfen auf die Zahl 2:

$x = 2;

switch($x) {
    case 1:
        echo "Die Zahl ist eins";
    case 2:
        echo "Die Zahl ist zwei";
}

Auch das scheint noch zu klappen – die Probleme schauen wir gleich an.

Zusätzlich zu unseren Fällen können auch ein Standardverhalten definieren, wenn kein Fall zutrifft. Das läuft unter der PHP-Anweisung default:

$x = 5;

switch($x) {
    case 1:
        echo "Die Zahl ist eins";
    case 2:
        echo "Die Zahl ist zwei";
    default:
        echo "Die Zahl ist anders";
}

Auch das scheint zu funktionieren.

Aber was passiert nun, wenn die am Anfang gesetzte Variable wieder auf 1 gesetzt wird?

$x = 1;

switch($x) {
    case 1:
        echo "Die Zahl ist eins";
    case 2:
        echo "Die Zahl ist zwei";
    default:
        echo "Die Zahl ist anders";
}

Fehler? Es kommen nun alle Ausgaben, auch wenn der Fall eigentlich nicht zutrifft. Wir erhalten bei folgendem Code als Ausgabe „Die Zahl ist einsDie Zahl ist zweiDie Zahl ist anders“.

Fehler in switch? Alle Fälle treffen auf einmal zu?

Warum werden alle folgenden Fälle auf einmal „wahr“ sobald der erste Fall zutrifft? Das ist ein korrektes Verhalten von der Anweisung switch und so auch gewünscht. Aber „reparieren“ wir erst einmal unseren PHP-Code, damit das bisherige Beispiel wie gewünscht funktioniert.

Uns fehlt noch die Anweisung break bei switch. Das break sagt, hier endet der Fall und alle weiteren kannst du ignorieren!

Erweitern wir das obige Beispiel:

$x = 1;

switch($x) {
    case 1:
        echo "Die Zahl ist eins";
        break;
    case 2:
        echo "Die Zahl ist zwei";
        break;
    default:
        echo "Die Zahl ist anders";
        break;
}

Aber zurück zu der obigen Frage „Warum möchte man, dass verschiedene Fälle gleichzeitig zutreffen?“.

Es können so mehrere Anfragen sauber abgedeckt werden. Klarer wird es am Beispiel. Wir wollen die Abfrage von Monaten und als Ausgabe, ob es als meteorologische Jahreszeit z.B. Winter ist.

Wie sieht das PHP-Code aus?

$monat = "Februar";

switch($monat) {
    case "Dezember":
    case "Januar":
    case "Februar":
        echo "Winter";
        break;
    default:
        echo "andere Jahreszeit";
        break;
}

Jetzt muss nur einer der Fälle für den Monat zutreffen und wir erhalten die gewünschte Ausgabe „Winter“. Extrem wichtig ist einfach das Beenden der zu kontrollierenden Fälle über break!

Übung zu switch: Ausgabe der Anzahl der Tage

Jeder Monat hat eine bestimmte Anzahl von Tagen – in der folgenden Aufgabe lassen wir Schaltjahre unter den Tisch fallen und der Februar hat einfach 28 Tage. Über die Anweisung switch soll nun über die Kontrolle der Variable $monat die Anzahl der Tage von diesem Monat als Ausgabe erfolgen.

Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).

Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Fehler melden

Vielen Dank für Ihre Hilfe