exit
(PHP 4, PHP 5, PHP 7, PHP 8)
exit — Beendet das aktuelle Skript mit einem Statuscode oder einer Meldung
Beschreibung
Beendet die Ausführung des Skripts.
Shutdown-Funktionen
und Objekt-Destruktoren
werden immer ausgeführt, auch wenn exit() aufgerufen wurde.
finally
-Blöcke werden jedoch nie ausgeführt.
Ein Exit-Code von 0
zeigt an, dass das Programm seine
Aufgaben erfolgreich ausgeführt hat.
Jeder andere Wert bedeutet, dass während der Ausführung ein Fehler
aufgetreten ist.
exit() ist eine besondere Funktion, weil sie im Parser
ein eigenes Token hat. Als solche kann sie wie eine Anweisung (d. h. ohne
Klammern) verwendet werden, um das Skript mit dem Standard-Statuscode zu
beenden.
Achtung
Es ist nicht möglich, die globale Funktion exit() zu
deaktivieren oder eine Funktion in einem Namensraum zu erstellen, die diese
Funktion überschreibt.
Parameter-Liste
status
-
Falls
status
eine Zeichenkette ist, gibt diese
Funktion den status
unmittelbar vor dem Beenden aus.
Der von PHP zurückgegebene Exit-Code ist 0
.
Falls status
vom Typ int ist, gibt
PHP status
als Exit-Code zurück.
Hinweis:
Exit-Codes sollten im Bereich von 0
bis
254
liegen, weil der Exit-Code 255
von PHP reserviert ist und deshalb nicht benutzt werden sollte.
Warnung
Vor PHP 8.4.0 folgte exit() nicht PHPs
Standard-Semantik der Typen-Jonglage
und berücksichtigte auch nicht die
strict_types
-Deklaration.
declare.
Jeder Wert, der nicht vom Typ int war, wurde in
string umgewandelt, also auch Werte vom Typ
resource und array.
Seit PHP 8.4.0 folgt es der üblichen Semantik der Typen-Jonglage und löst
bei ungültigen Werten einen TypeError aus.
Rückgabewerte
Da diese Funktion das PHP-Skript beendet, wird kein Wert zurückgegeben.
Beispiele
Beispiel #1 Einfaches exit
-Beispiel
<?php
// das Programm normal beenden
exit();
exit(0);
// das Programm mit einem Fehlercode beenden
exit(1);
?>
Beispiel #2 exit()-Beispiel mit einem string
<?php
$dateiname = '/pfad/zur/datei';
$datei = fopen($dateiname, 'r')
or exit("kann Datei $dateiname nicht öffnen");
?>
Beispiel #3 Shutdown-Funktionen und Destruktoren werden trotzdem aufgerufen
<?php
class Foo
{
public function __destruct()
{
echo 'Destruktor: ' . __METHOD__ . '()' . PHP_EOL;
}
}
function shutdown()
{
echo 'Shutdown-Funktion: ' . __FUNCTION__ . '()' . PHP_EOL;
}
$foo = new Foo();
register_shutdown_function('shutdown');
exit();
echo 'Dies wird nicht ausgegeben.';
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Shutdown-Funktion: shutdown()
Destruktor: Foo::__destruct()
Beispiel #4 exit() als Anweisung
<?php
// Programm mit Exit-Code 0 normal beenden
exit;
?>