Menu
Coddy logo textTech

Switch Statement

Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 32 von 71.

Wenn Sie eine einzelne Variable mit vielen spezifischen Werten vergleichen müssen, bietet die switch-Anweisung eine sauberere Alternative zu langen if-elseif-Ketten.

Die switch-Anweisung prüft eine Variable einmal und gleicht sie dann mit verschiedenen case-Werten ab:

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
    default:
        echo "Regular day";
}
?>

PHP vergleicht $day mit jedem case. Wenn es eine Übereinstimmung findet, führt es den Code dieses Blocks aus.

Die break-Anweisung ist entscheidend – sie weist PHP an, den switch nach der Ausführung des passenden case zu verlassen. Ohne sie würde PHP mit der Ausführung des gesamten nachfolgenden Codes fortfahren, sogar aus anderen cases.

Beachten Sie, wie Samstag und Sonntag denselben Code teilen, indem cases zusammengefügt werden. Der default-Fall verhält sich wie ein else – er wird ausgeführt, wenn kein anderer Fall zutrifft.

<?php
$grade = "B";

switch ($grade) {
    case "A":
        echo "Excellent!";
        break;
    case "B":
        echo "Good job!";
        break;
    default:
        echo "Keep trying!";
}
?>

Verwenden Sie switch, wenn Sie eine Variable mit mehreren exakten Werten vergleichen. Für komplexe Bedingungen oder Bereiche bleiben Sie bei if-elseif-Anweisungen.

challenge icon

Aufgabe

Einfach

Lesen Sie eine Zeichenkette command aus der Eingabe, die eine Ampelfarbe darstellt.

Verwenden Sie eine switch-Anweisung, um die entsprechende Aktion basierend auf der Farbe zu bestimmen:

  • Wenn der command red ist, geben Sie Stop aus
  • Wenn der command yellow ist, geben Sie Slow down aus
  • Wenn der command green ist, geben Sie Go aus
  • Wenn der command flashing red oder flashing yellow ist, geben Sie Proceed with caution aus
  • Für jeden anderen Wert geben Sie Invalid signal aus

Beispiel:

Wenn die Eingabe green ist, sollte die Ausgabe sein:

Go

Wenn die Eingabe flashing red ist, sollte die Ausgabe sein:

Proceed with caution

Wenn die Eingabe blue ist, sollte die Ausgabe sein:

Invalid signal

Spickzettel

Die switch-Anweisung bietet einen saubereren Weg, um eine einzelne Variable mit mehreren spezifischen Werten zu vergleichen:

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    default:
        echo "Regular day";
}
?>

Die break-Anweisung verlässt den switch nach der Ausführung des zutreffenden case. Ohne sie setzt PHP die Ausführung mit dem Code der nachfolgenden cases fort.

Mehrere cases können denselben Code teilen, indem sie gestapelt werden:

<?php
switch ($day) {
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
}
?>

Der default-case wird ausgeführt, wenn kein anderer case zutrifft, ähnlich wie eine else-Anweisung.

Verwenden Sie switch-Anweisungen, um eine Variable mit mehreren exakten Werten zu vergleichen. Für komplexe Bedingungen oder Bereiche verwenden Sie stattdessen if-elseif-Anweisungen.

Probier es selbst

<?php
// Eingabe lesen
$command = trim(fgets(STDIN));

// TODO: Schreibe deinen Code unten unter Verwendung einer `switch`-Anweisung
// Bestimme die entsprechende Aktion basierend auf der Ampelfarbe


?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen