W3docs

case

Erfahren Sie, wie das Schlüsselwort case in PHP-switch-Anweisungen funktioniert, einschließlich Syntax, Fall-Through und Vergleichsregeln.

Als PHP-Entwickler haben Sie möglicherweise die switch-Anweisung verwendet, um mehrere Bedingungen in Ihrem Code zu behandeln. Das Schlüsselwort case ist ein wesentlicher Bestandteil der switch-Anweisung und ermöglicht es Ihnen, spezifische Aktionen basierend auf dem Wert einer Variablen zu definieren. Diese Seite behandelt die Syntax von case, wie Fall-Through und break funktionieren, den häufigen Fehler beim lockeren Vergleich, das switch (true)-Muster für Bereiche sowie die Beziehung von case zu if/elseif-Ketten.

Syntax

Das Schlüsselwort „case" wird verwendet, um eine spezifische Aktion basierend auf dem Wert einer Variablen in einer „switch"-Anweisung zu definieren. Hier ist die grundlegende Syntax für die Verwendung des Schlüsselworts „case" in PHP:

Die PHP-Syntax von case

<?php

switch ($variable) {
  case $value1:
    // Code to execute if $variable equals $value1
    break;
  case $value2:
    // Code to execute if $variable equals $value2
    break;
  default:
    // Code to execute if $variable does not equal any of the specified values
}

In diesem Beispiel wird das Schlüsselwort „case" verwendet, um spezifische Aktionen basierend auf dem Wert der Variablen „$variable" zu definieren. Die break-Anweisung ist entscheidend: Sie beendet den switch-Block und verhindert den „Fall-Through" zum nächsten case. Ohne sie führt PHP weiterhin Code in den nachfolgenden cases aus, bis es auf ein break oder das Ende des switch-Blocks trifft. Beachten Sie außerdem, dass PHP's switch standardmäßig einen lockeren Vergleich (==) verwendet, was bedeutet, dass case 0 auch "0" oder false entspricht. Verwenden Sie strenge Vergleichslogik, wenn eine exakte Typübereinstimmung erforderlich ist.

Beispiele

Sehen wir uns einige praktische Beispiele an, wie das Schlüsselwort „case" verwendet werden kann:

Beispiel für PHP case

<?php

// Example 1
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Today is Monday." . PHP_EOL;
        break;
    case "Tuesday":
        echo "Today is Tuesday.";
        break;
    case "Wednesday":
        echo "Today is Wednesday.";
        break;
    default:
        echo "Today is not Monday, Tuesday, or Wednesday.";
}

// Output: Today is Monday.

// Example 2
$grade = 85;

switch (true) {
    case $grade >= 90:
        echo "A";
        break;
    case $grade >= 80:
        echo "B";
        break;
    case $grade >= 70:
        echo "C";
        break;
    case $grade >= 60:
        echo "D";
        break;
    default:
        echo "F";
}

// Output: B

Beispiel 1 vergleicht einen string-Wert direkt. Beispiel 2 verwendet das switch (true)-Muster: Jedes case enthält einen boolean-Ausdruck, und das erste, das zu true ausgewertet wird, wird ausgeführt. Dies ist die idiomatische Methode zur Behandlung von Bereichen in einem switch, da ein einfaches case nur auf Gleichheit prüft.

cases gruppieren (absichtlicher Fall-Through)

Da ein case ohne break zum nächsten durchfällt, können Sie Labels stapeln, um denselben Block für mehrere Werte auszuführen:

<?php

$day = "Sat";

switch ($day) {
    case "Sat":
    case "Sun":
        echo "Weekend";
        break;
    default:
        echo "Weekday";
}

// Output: Weekend

Hier entspricht "Sat" dem ersten Label, fällt durch das leere "Sun"-case durch und führt den gemeinsamen Block aus. Dies ist die einzige Situation, in der das Weglassen von break absichtlich und kein Fehler ist.

Vorteile

Die Verwendung des Schlüsselworts „case" hat mehrere Vorteile, darunter:

  • Vereinfachter Code: Das Schlüsselwort „case" ermöglicht es Ihnen, kürzeren, präziseren Code zu schreiben, der leichter zu lesen und zu verstehen ist.
  • Verbesserte Lesbarkeit: Die „switch"-Anweisung bietet eine sauberere Struktur als lange Ketten von „if/elseif"-Anweisungen, wenn eine einzelne Variable mit mehreren Werten verglichen wird.
  • Erhöhte Flexibilität: Das Schlüsselwort „case" ermöglicht es Ihnen, spezifische Aktionen basierend auf dem Wert einer Variablen zu definieren, wodurch Ihr Code anpassungsfähiger an verschiedene Szenarien wird.

Fazit

Das Schlüsselwort case ermöglicht es Ihnen, spezifische Aktionen basierend auf dem Wert einer Variablen innerhalb einer switch-Anweisung zu definieren. Denken Sie an die zwei häufigen Fehlerquellen: Fügen Sie break zu jedem case hinzu, es sei denn, Sie beabsichtigen einen Fall-Through, und achten Sie auf den lockeren Vergleich beim Abgleich von Zahlen mit Zeichenketten.

Verwandte Themen

Übungen

Übung
Welche der folgenden Elemente sind Arten von Kontrollstruktur-Schaltern in PHP?
Welche der folgenden Elemente sind Arten von Kontrollstruktur-Schaltern in PHP?
Was this page helpful?