SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=135&group=25
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Verschachtelte Kontrollstrukturen


Sie haben nun alle Kontrollstrukturen aus PHP kennengelernt. Sie lassen sich nicht nur jeweils einzeln ausführen, sondern können auch miteinander kombiniert werden. Das Kombinieren von Kontrollstrukturen untereinander wird in der Programmierung als Verschachtelung bezeichnet.

Sie kennen sicher die aus Russland stammenden »Matuschkas«, das sind die ineinander geschachtelten Puppen. Jedes Mal, wenn Sie eine Puppe öffnen, kommt eine weitere, kleinere Puppe zum Vorschein. Dies wird fortgeführt, bis Sie zur letzten Puppe kommen, die sich nicht mehr öffnen lässt. Sie können sich verschachtelte Kontrollstrukturen so ähnlich aufgebaut vorstellen. Man schaut immer in die nächste hinein, dem Prinzip der Kiste in der Kiste entsprechend. Dabei kommt die Verschachtelung sowohl bei if-Anweisungen und switch-Anweisungen als auch bei Schleifen vor.

Beispiel

<?php
/*
  Beispiel Haus (Verschachtelung: 3 Stufen)
  Aufbau der Stufen:
  // if-Stufe 1
    // if-Stufe 2
      // if-Stufe 3
      // else-Stufe 3
    // else-Stufe 2
  // else-Stufe 1
*/

$haus = true;
$hausTuer = true;
$hausSchluessel = true;

if ($haus == true) {
  echo "Haus in Sicht – Tür vorhanden?";
  if ($hausTuer == true) {
    echo "Tür vorhanden – passender Schlüssel?";
    if ($hausSchluessel == true) {
      echo "Passender Schlüssel – Haus betreten!";
    } else {
      echo "Leider keinen passenden Schlüssel!";
    }
  } else {
    echo "Leider hat das Haus keine Tür";
  }
} else {
  echo "Kein Haus in Sicht!";
}
?>

Ausgabe
Haus in Sicht – Tür vorhanden?
Tür vorhanden – passender Schlüssel?
Passender Schlüssel – Haus betreten!

Tipp: Ein Limit für die Anzahl von Verschachtelungen gibt es nicht. Aber je weniger Stufen die Verschachtelung verwendet, desto leichter ist der Code zu verstehen. Sie sollten bei der Verschachtelung die Faustregel beachten, dass Sie nicht mehr als drei Stufen verwenden sollten, um nicht den Überblick zu verlieren.

Bei der Verschachtelung von Kontrollstrukturen sollten Sie unbedingt darauf achten, dass Sie Ihre Codezeilen einrücken. Dies wirkt sich vor allem besonders positiv auf die Lesbarkeit des Codes aus.

Beispiel

<?php
// switch-Anweisung, in der sich if-Anweisungen befinden.
$lohn = 1000;
$mitarbeiter = "Mike";

// Ausgabe – Mike du erhältst 1000 Euro pro Monat
switch ($lohn) {
  case 1000:
    if ($mitarbeiter == "Mike") {
      echo "Mike du erhälst 1000 Euro pro Monat";
    }
    break;
  case 2000:
    if ($mitarbeiter == "Gülten") {
      echo "Gülten du erhälst 2000 Euro pro Monat";
    }
    break;
  default:
    echo "Sie sind kein Mitarbeiter unserer Firma!";
}
?>

Sie sehen, eine Verschachtelung kann durch das Einrücken der Codezeilen um einiges besser überblickt werden.

Hinweis: Die Verschachtelung lässt sich natürlich mit sämtlichen Kontrollstrukturen durchführen.