exit

(PHP 4, PHP 5, PHP 7, PHP 8)

exitBeendet das aktuelle Skript mit einem Statuscode oder einer Meldung

Beschreibung

exit(string|int $status = 0): never

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.

Changelog

Version Beschreibung
8.4.0 exit() ist nun eine echte Funktion, folgt also der üblichen Semantik der Typen-Jonglage, ist von der strict_types-Deklaration betroffen, kann mit benannten Argumenten aufgerufen werden und kann eine Variablenfunktion sein.

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;

?>

Anmerkungen

Warnung

Vor PHP 8.4.0 war exit() ein Sprachkonstrukt und keine Funktion, sodass es nicht möglich war, es mit Variablenfunktionen oder Benannte Argumenten aufzurufen.

Siehe auch