logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

PHP-Lektionen – Lektion 8-2 – Der switch-Operator

26/05/2025, by Ivan

Im letzten Unterricht haben wir den Operator if kennengelernt. Der if-Operator erlaubt uns, die Wahrheit einer Bedingung zu überprüfen und abhängig vom Ergebnis die notwendigen Aktionen auszuführen.


Stellen wir uns nun vor, wir müssen zehn Prüfungen durchführen und abhängig vom Ergebnis eine von zehn Aktionen ausführen. Natürlich könnten wir das auch mit if schreiben:

<?php
  if($x == 1){
    // Aktionen
  }
  if($x == 2){
    // Aktionen
  }
  if($x == 3){
    // Aktionen 
  }
  if($x == 4){
    // Aktionen 
  }
  if($x == 5){
    // Aktionen 
  }
  if($x == 6){
    // Aktionen 
  }
  if($x == 7){
    // Aktionen 
  }
  if($x == 8){
     // Aktionen
  }
  if($x == 9){
    // Aktionen 
  }
  if($x == 10){
    // Aktionen
  }
?>

Diese Methode funktioniert zwar, aber solche Prüfungen schreibt man besser mit dem SWITCH-Operator.
PHP switch
Der switch-Operator erlaubt es, den Wert eines Ausdrucks bei vielen Bedingungen zu prüfen. Schauen wir uns das obige Beispiel mit switch an:

<?php
  switch ($x){
    case 1:
      // Aktionen   
    break;
    case 2:
      // Aktionen       
    break;
    case 3:
      // Aktionen       
    break;
    case 4:
      // Aktionen       
    break;
    case 5:
      // Aktionen       
    break;
    case 6:
      // Aktionen       
    break;
    case 7:
      // Aktionen       
    break;
    case 8:
      // Aktionen       
    break;
    case 9:
      // Aktionen       
    break;
    case 10:
      // Aktionen       
    break;
    default:   
      // Aktionen, wenn keine der anderen Bedingungen zutrifft
  }
?>

Wie gesagt, beide Beispiele funktionieren gleich, nur dass ich im switch-Beispiel default hinzugefügt habe, das ausgeführt wird, wenn $x keinen Wert von 1 bis 10 hat.
Schauen wir uns die Struktur des switch genauer an. Zuerst steht der switch-Operator, dann in Klammern der zu prüfende Ausdruck. Das kann eine Variable sein, entweder numerisch oder als Text, also Zahl oder String, z.B.:

<?php
  switch ($x){
    case 'Hello':
   
    break;
    case 'Bye':
   
    break;
  }
?>

Nach dem Ausdruck folgen geschweifte Klammern. In diesen Klammern schreiben wir mögliche Werte und dazugehörige Aktionen.

<?php
  switch ($x){
    case 'Hello': // möglicher Wert
      print $x;   // Aktion
    break; // Ende des case
    case 2:
      $x++;
    break;
  }
?>

Die Prüfung erfolgt mit case, der mögliche Wert steht in Anführungszeichen, wenn es ein String ist, oder ohne, wenn es eine Zahl ist. Nach dem Wert folgt ein Doppelpunkt.
Dann schreiben wir die Aktionen, die ausgeführt werden, wenn die Bedingung zutrifft. Am Ende eines case sollte man break; setzen, was das Ende des switch signalisiert.
Nach allen case-Anweisungen kann default verwendet werden. Es wird ausgeführt, wenn kein case zutrifft oder wenn break; vergessen wurde und die Ausführung weiterläuft. Daraus ergeben sich zwei Hinweise:
1. Vergessen Sie nicht, nach jedem case break; zu schreiben.
2. Nach default kann break; weggelassen werden, da es die letzte Anweisung ist.

Unten sehen Sie das Flussdiagramm zum switch-Operator:

Switch Flussdiagramm

Zur Erklärung: Hier berechnen wir den Rest bei Division einer Zahl D durch 7, also wie viele Tage seit Wochenbeginn vergangen sind, und geben so den aktuellen Wochentag aus.

<?php
// $D ist die Anzahl der Tage ab Montag
$x = $D % 7;
switch ($x){
  case 1:
    print 'Montag';
  break;
  case 2:
    print 'Dienstag';
  break;
  case 3:
    print 'Mittwoch';
  break;
  case 4:
    print 'Donnerstag';
  break;
  case 5:
    print 'Freitag';
  break;
  case 6:
    print 'Samstag';
  break;
  case 7:
    print 'Sonntag';
  break;
}
?>