22 Stimmen

PHP switch/case: Bedingung mit mehreren Werten

Frage von PC Control | 10.02.2015 um 10:49

Ich möchte in PHP eine SWITCH-Anweisung programmieren, in der mehrere Werte zur gleichen Bedingung führen sollen.

Bisher habe ich folgendes probiert:

// VARIANTE 1 - geht nicht
switch($v) {
  case 0, 1, 2: echo 'A'; break;
  case 3:       echo 'B'; break;
}

// VARIANTE 2 - geht nicht
switch($v) {
  case 0 || 1 || 2: echo 'A'; break;
  case 3:           echo 'B'; break;
}

Die erste Variante führt zu einem Fehler, die zweite Variante landet aus mir unerklärlichen Gründen immer bei Bedingung "A".

Natürlich könnte ich das Problem lösen, indem ich den Code für die ersten drei Fälle kopiere, aber das finde ich nicht sehr elegant.

Gibt es nicht eine einfachere Lösung oder ist dies in PHP nicht vorgesehen?

AntwortenPositivNegativ
2Beste Antwort2 Stimmen

Doch, das geht mit PHP.

Du kannst dein Vorhaben folgendermaßen umsetzen:

switch($v) {
  case 0: 
  case 1: 
  case 2:   echo 'A'; break;
  case 3:   echo 'B'; break;
}

Nach einem erfüllten CASE wird so lange weiter gemacht, bis ein BREAK kommt. Dies kannst du dir hier zu Nutze machen und mehrere CASES hintereinander schreiben.
11.02.2015 um 17:37

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.