(PHP 4, PHP 5, PHP 7, PHP 8)
exit — Beendet das aktuelle Skript mit einem Statuscode oder einer Meldung
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.
Es ist nicht möglich, die globale Funktion exit() zu deaktivieren oder eine Funktion in einem Namensraum zu erstellen, die diese Funktion überschreibt.
status
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
bis254
liegen, weil der Exit-Code255
von PHP reserviert ist und deshalb nicht benutzt werden sollte.
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.
Da diese Funktion das PHP-Skript beendet, wird kein Wert zurückgegeben.
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.
|
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;
?>
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.