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: BBeispiel 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: WeekendHier 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
- PHP
switch-Anweisung — die vollständige Struktur, in dercaseverwendet wird. switch— Schlüsselwortreferenz fürswitch.- PHP
if...else...elseif— wenn eine Kette von Bedingungen besser lesbar ist als einswitch. - PHP-Operatoren — wie sich
==(locker) und===(streng) beim Vergleich unterscheiden.