Folien



(letzte Synchronisation der PDF-Präsentation: 02.03.2017)

Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation

Syntax:

PHP-Code
  switch ($variable) { case Bedingung1: Anweisung; break; case Bedingung 2: Anweisung; break; default: Anweisung; }  

Die Bedingungen werden entweder als Gleichheitsbedingung formuliert (case 1 oder case "Passwort") oder mit Vergleichsoperatoren (case ($pwd != "xyz") oder case ($geschlecht == "m").

Beispiel:

PHP-Code
  <?php if (isset($_GET['absenden']) && isset($_GET['geschlecht']) && isset($_GET['zahl'])) { $geschlecht = $_GET['geschlecht']; $zahl = $_GET['zahl']; switch ($geschlecht) { case "w": $msg1 = "Sie sind eine Frau.<br />"; break; case "m": $msg1 = "Sie sind ein Mann.<br />"; break; default: $msg1 = "Ich kenne Ihr Geschlecht nicht.<br />"; } switch ($zahl) { case 5: $msg2 = "Richtig, Sie haben die Zahl 5 eingegeben!"; break; default: $msg2 = "Schade, Sie haben nicht die Zahl 5 eingegeben."; } echo $msg1 . "<br />" . $msg2 . "<br /><br />"; } ?>   <form action = "<?php echo $_SERVER['PHP_SELF'] ?>" method = "get" /> m<input type = "radio" name = "geschlecht" value = "m" /> - w<input type = "radio" name = "geschlecht" value = "w" /><br /> Geben Sie hier die Zahl 5 ein: <input type = "text" name = "zahl" /> <input type = "submit" name = "absenden" /> </form>  

If-Verzweigungen können immer nur einen Fall abhandeln, so dass u.U. sehr lange und verschachtelte If-Ketten entstehen. Außerdem ist switch schneller in der Ausführung. Die Codelänge unterscheidet sich bei einfachen Strukturen nicht signifikant, allerdings ist switch u.U. etwas übersichtlicher.

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: PHP - switch *****

PHP_16-1: SWITCH-Anweisung formulieren

Formulieren Sie eine SWITCH-Verzweigung, in der ein String überprüft wird. Lautet der String “Expressversand”, geben Sie die Meldung “Der Artikel wird morgen bei Ihnen eintreffen” aus. Lautet der String “Normalversand”, geben Sie die Meldung “Der Artikel wird auf dem Postweg verschickt.” aus. Lautet der String “Luftfracht”, geben Sie die Meldung “Das wird wohl ein wenig dauern.” aus. Bei jedem anderen String geben Sie die Meldung “Versandform unbekannt” aus.





PHP_16-2: SWITCH-Anweisung formulieren: Horoskop

1. Schreiben Sie ein Programm, wo der User ein Horoskop je nach angegebenem Sternzeichen erhält. Berücksichtigt werden die Sternzeichen Steinbock, Waage und Widder.
2. Vergleichen Sie mit PHP_11-2 (wo das gleiche Programm unter Verwendung von if-else realisiert wurde. Welche Variante gefällt Ihnen besser?




PHP_16-3: Verschiedene SWITCH-Varianten

Gegeben sei folgendes, unvollständige Listing:

PHP-Code
$kundenstatus = array("Gold-Mitgliedschaft", "Bestandskunde", "Neu registriert", "Nicht registriert"). $aktueller_kunde = $kundenstatus[0] // wird später für die anderen Status angepasst switch //$kundenstatus überprüfen { case //auf Gold-Mitgliedschaft überprüfen $rabatt = 0.09; break; case //auf Bestandskunde überprüfen $rabatt = 0.05; break; case //auf Neu registriert überprüfen $rabatt = 0.00; break; case //auf nicht registriert überprüfen $rabatt = 0.00; break; }  

1. Vervollständigen Sie das Listing auf zwei verschiedene Arten (Gleichheitsbedingung; Vergleichsoperator) und überprüfen Sie jeweils die Funktionsfähigkeit mit einer entsprechenden Ausgabe.
2. Ergänzen Sie das Programm, dass nicht registrierte User eine Aufforderung zur Registrierung erhalten.




PHP_16-4: Einkommen und Alter

Der User gibt in ein Formular die Höhe seines monatlichen Gesamteinkommens und sein Alter ein. Überprüfen Sie, in welchem Bereich sich das Einkommen bewegt (bis 50 Euro; bis 200 Euro; bis 2000 Euro; mehr als 2000 Euro). Geben Sie zu jeder Einkommensspalte je nach Alter (über 18 / unter 18) eine entsprechende Meldung aus.

Sie haben mehrere Möglichkeiten, dieses Programm zu realisieren.

1. Schreiben Sie das Programm so, dass mit SWITCH das Einkommen überprüft wird und für jeden Fall eine IF-Anweisung geschrieben wird.
2. Es geht auch wesentlich kürzer. Versuchen Sie, das Programm mit möglichst wenig Code-Zeilen zu realisieren (bitte trotzdem aussagekräftige Variablennamen verwenden!).



Weitere Übung finden Sie in diesem Verzeichnis:
php16-UE1-anrede-switch-if