Kontrollstrukturen

Fallunterscheidung

Bei der Programmierung müsen wir auf Eingaben reagieren und bedingt von den Eingaben bestimmte Aktionen ausführen. Zu diesem Zweck gibt es in PHP wie in den meisten Programmiersprachen Konstrukte zur Fallunterscheidung.



if / else / elseif

Iif/else bedeutet übersetzt wenn/ansonsten. Dies lässt vermuten, dass bei einer wahren Bedingung der "wenn" Fall ausgeführt wird und im "ansonsten" Fall die andere Anweisung ausgeführt wird. Genau so ist es auch. Der schematische Aufbau einer if/else Unterscheidung in PHP ist:

<?php
   if(Bedingung) {
      //Anweisung;
   } else {
      //Anweisung;
   }
?>

Folgendes Beispiel benutzt ein if um zu testen ob die erste Zahl größer als die zweite Zahl ist:

<?php
   $zahl1 = 5;
   $zahl2 = 6;

   if($zahl1 > $zahl2){
      echo "Die erste Zahl war grösser";
   } else {
      echo "Die zweite Zahl war grösser";
   }
?>

Mit diesem Beispiel können wir zwei beliebige Zahlen vergleichen. Dieses Beispiel hat aber auch einen Nachteil. Denn im Prinzip müsen wir einen weiteren Fall beachten. Was ist wenn die zwei Variablen den gleichen Wert hätten?


Das Programm würde dann behaupten das die zweite Zahl grösser ist, obwohl das ja nicht der Fall ist.

switch / case

Das ist der generelle Aufbau der switch / case Fallunterscheidung

<?php
   switch($Bedingung) {
      case 'fall':
         //Anweisung;
      break;
      default:
         //Anweisung;
      break;
   }
?>

Eine Switch / Case Struktur macht dann Sinn, wenn man testen möchte ob eine Variable einen von mehreren, erwarteten Werten hat und man dafür dann viele if Strukturen bräuchte.

 

Das folgende Beispiel zeigt ein Stück Code das von ein paar Farbnamen den hexadezimalen Farbwert ermittelt:

 

<?php
   switch($color){
      case 'red':
         $hexColor = '#ff0000';
      break;
      case 'white':
          $hexColor = '#ffffff':
      break;
      case 'blue':
          $hexColor = '#0000ff';
      break;
      default:
          $hexColor = '#000000';
      break;
   }
?>

Navigation