SELFPHP

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


if-elseif-Anweisung


Die if-elseif-Anweisung wird vor allem für Mehrfachverzweigungen eingesetzt. Damit lassen sich in Abhängigkeit vom Wert einer Variablen verschiedene Anweisungen ausführen.


Definition

if (Bedingung/Ausdruck) {
  Anweisung/en;
} elseif (Bedingung/Ausdruck) {
  Anweisung/en;
} elseif (Bedingung/Ausdruck) {
  Anweisung/en;
} else {
  Anweisung/en;
}



Bild 3.5: Ablaufschema einer if-elseif-Anweisung

Fallbeispiel

wenn mein Lohn den Wert
1000 hat: führe Anweisung A aus
2000 hat: führe Anweisung B aus
3000 hat: führe Anweisung C aus
4000 hat: führe Anweisung D aus
in allen andern Fällen: führe Anweisung E aus

Beachten Sie den grundsätzlichen Unterschied zur if-else-Anweisung. Die Bedingung einer if-else-Anweisung ist immer ein boolescher Wert, der nur einen der beiden Werte true oder false annehmen kann. Folglich verzweigt die if-else-Anweisung auch nur in zwei alternative Anweisungsblöcke. Bei der Mehrfachverzweigung wird dagegen der Wert einer Variablen abgefragt: Der Programmierer kann grundsätzlich ebenso viele alternative Verzweigungen formulieren, wie es Werte für die Variable gibt.

$meinLohn = 3000;

// Mehrfachverzweigung (if-elseif-Anweisung)
// Ergebnis: "C"
if ($meinLohn == 1000) {
  // Anweisung A
  $ausgabe = "A";
} elseif ($meinLohn == 2000) {
  // Anweisung B
  $ausgabe = "B";
} elseif ($meinLohn == 3000) {
  // Anweisung C
  $ausgabe = "C";
} elseif ($meinLohn == 4000) {
  // Anweisung D
  $ausgabe = "D";
} else {
  // Anweisung E
  $ausgabe = "E";
}

echo $ausgabe;

Lassen Sie sich aber nicht von der Einrückung täuschen. Es handelt sich hier immer noch um vier, immer tiefer verschachtelte if-else-Anweisungen. Der Interpreter prüft zuerst, ob der Wert von meinLohn gleich 1.000 ist. Ist dies nicht der Fall, prüft er im else-Teil, ob meinLohn gleich 2.000 ist. Stimmt auch dies nicht, verzweigt er zum else-Teil mit dem Vergleich meinLohn gleich 3.000. Stimmt auch dies nicht, verzweigt er zum else-Teil mit dem Vergleich meinLohn gleich 4.000. Liefert auch dieser Vergleich false, landet der Interpreter in dem letzten else-Teil, der alle anderen nicht überprüften Fälle abfängt.{PSP}Alternative Syntax

In PHP steht auch für die if-elseif-Anweisung eine alternative Schreibweise zur Verfügung.


Definition

if (Bedingung/Ausdruck):
  Anweisung/en;
elseif:
  Anweisung/en;
else:
  Anweisung/en;
endif;

Beispiel – Schreibweise wie gehabt

<?php
$chef = "Schmidt";
if ($chef == "Müller") {
  echo "Müller ist der Chef";
} elseif ($chef == "Schmidt") {
  echo "Scmidt ist der Chef";
} else {
  echo "Unbekannter Chef";
}
?>


Beispiel – alternative Schreibweise

<?
$chef = "Schmidt";
if ($chef == "Müller"):
?>
Müller ist der Chef
<?
elseif ($chef == "Schmidt"):
?>
Schmidt ist der Chef
<?
else:
?>
Unbekannter Chef
<?
endif
?>