PHP/Abbruchsteuerung

Aus Mikiwiki
< PHP
Wechseln zu: Navigation, Suche

Die einfachste Möglichkeit der Reaktion auf Fehler ist das Beenden der Skriptausführung. Dafür können die beiden Funktionen "die" und "exit" eingesetzt werden.

Der Befehl "die" beendet das laufende Skript, gibt aber zuvor noch eine Meldung an den Webbrowser aus.

if ($status = "error")
{
  die("Ein Fehler ist aufgetreten.";
}

Eine interessante Anwendung für "die" ist die syntaktische Kopplung an andere Funktionen, beispielsweise mit dem Operator "or". Im Beispiel wird bricht das Skript mit einer Meldung ab, wenn die Funktion "fopen" nicht richtig abgearbeitet wird. Wenn der Ausdruck auf der linken Seite ein eindeutiges Ergebnis hat, bricht der Ausdrucksparser ab und beachtet den Rest der Zeile gar nicht. Bei Oder ("or") wird der Ausdruck also immer "TRUE", wenn der linksseitige Teil "TRUE" ist; der rechtsseitige Teil wird dann gar nicht angefasst. Gibt dagegen der linksseitige Ausdruck "FALSE" zurück, so wird der Parser gezwungen, auch den rechtsseitigen Teil abzuarbeiten und "die" wird ausgeführt. Die Funktion "die" selbst gibt nichts zurück.

<?php
$filename = "/path/to/file";
$file     = fopen($filename, "r") or die("Fehler bei: " . $filename);
?>

Warning: fopen(/path/to/file) [function.fopen]: failed to open stream: No such file or directory in /WWW/test/test.php on line 3 Fehler bei: /path/to/file

Die Funktion "exit" funktioniert ganz ähnlich. Allerdings wird keine Meldung ausgegeben, stattdessen erfolgt der Abbruch sofort.

if ($checkit) { exit; }

Wird an "exit" ein text als Argument übergeben, so ist die Funktion ein Alias für "die". Wird dagegen ein numerischer Wert übergeben, so wird dieser in die Fehlerausgabe einer Shell-Umgebung übergeben, wenn der Aufruf auf einer Shell erfolgte (bei Konsolenprogrammierung mit PHP, für Webrechner ist das nicht zutreffend).