SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=143&group=26
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.de
© 2005-2024 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Fehlercode als Rückgabewert


Eine komplexe Funktion sollte nicht nur den üblichen Rückgabewert erzeugen, sondern bei Bedarf auch noch einen Fehlercode. Dieser Fehlercode wird ebenfalls in einer return-Anweisung definiert. Kann die Funktion die erwartete Operation nicht ausführen, soll sie stattdessen den Fehlercode liefern. Der Entwickler ist dann in der Lage, den Rückgabewert in einer if-Abfrage auszuwerten und für die Programmsteuerung zu nutzen. Das folgende Beispiel erfüllt diese Anforderung:

Beispiel

function bruttoberechnen($betrag, $mwst) {
  if ($betrag > 0 && $mwst > 0) {
    return $betrag + ($betrag * $mwst / 100);
  } else {
    return -1;
  }
}

Die Funktion erwartet die Angabe eines Nettobetrags und der Mehrwertsteuer, daraus wird dann der Bruttobetrag errechnet. Es wird überprüft, ob die Variablen einen Wert größer 0 liefern. Nur wenn das der Fall ist, erfolgen Berechnung und Rückgabe des berechneten Werts. Wenn eine der Variablen nur einen Wert kleiner oder gleich 0 enthält, wird der alternative else-Zweig ausgeführt. Die dort untergebrachte return-Anweisung erzeugt dann den Rückgabewert –1. Diesen Wert verwenden Sie als Fehlercode. Beim Aufruf der Funktion können Sie den Fehlercode berücksichtigen und auswerten.

$resultat = bruttoberechnen (100, 0); // -1

if ($resultat > -1) {
  echo $resultat;
} else {
  echo "Falsche Argumente!";
}

Hinweis: In den vorangegangenen Beispielen wurde als Rückgabewert für die Anzeige einer Fehlerfunktion immer der Wert –1 verwendet. Sie können natürlich jeden beliebigen Wert dafür vorgeben. Der Wert sollte sich nur deutlich von den normalen Funktionswerten unterscheiden. Viele Funktionen geben bei einem Fehler beispielsweise den Wahrheitswerts false (0) zurück. Bei Stringfunktionen können Sie auch einen Leerstring verwenden.