(PHP 4, PHP 5)
register_shutdown_function — Registriert eine Funktion zur Ausführung beim Skript-Abschluss
Registriert ein callback
, welches ausgeführt werden soll, sobald
die Ausführung des Scripts beendet ist oder exit() aufgerufen wurde.
register_shutdown_function() kann mehrmals hintereinander aufgerufen werden, in welchem Fall die Callbacks später in der selben Reihenfolge aufgerufen werden, wie sie registriert wurden. Wenn exit() innerhalb eines Shutdown Callbacks aufgerufen wird, bricht die Ausführung vollständig ab und keine weiteren Callbacks werden ausgeführt.
callback
Das Shutdown Callback, welches registriert werden soll.
Die Callbacks werden als Teil der Anfrage ausgeführt, d.h. es ist möglich Ausgaben zu machen und auf Output Buffer zuzugreifen.
parameter
Alle weiteren Argumente, die dieser Funktion übergeben werden, werden auch den Callbacks beim Aufruf übergeben.
...
Es wird kein Wert zurückgegeben.
Wenn das übergebene Callback nicht aufrufbar ist, wird ein
E_WARNING
geworfen.
Version | Beschreibung |
---|---|
4.1.0 | Die Shutdown Callbacks werden nun als Teil der Anfrage ausgeführt. In früheren Versionen wurden sie aufgerufen nachdem die Anfrage abgeschlossen wurde, weshalb es nicht möglich war mit echo oder print Ausgaben zu machen oder Output Buffer mit ob_get_contents() abzurufen. Auch Header wurden bereits vorher gesendet. |
Beispiel #1 register_shutdown_function() Beispiel
<?php
function shutdown()
{
// Das ist unsere Shutdown Funktion, in welcher
// wir noch letzte Anweisungen ausführen können
// bevor die Ausführung beendet wird.
echo 'Script executed with success', PHP_EOL;
}
register_shutdown_function('shutdown');
?>
Hinweis:
Das Arbeitsverzeichnis des Scripts kann sich bei manchen Webservern wie Apache innerhalb des Shutdown Callbacks ändern.
Hinweis:
Shutdown-Funktionen werden nicht ausgeführt, wenn der Prozess mit einem SIGTERM oder SIGKILL Signal terminiert wurde. Während es nicht möglich ist ein SIGKILL Signal abzufangen, kann die pcntl_signal() genutzt werden, um einen Handler für SIGTERM zu registrieren.