Forum und email

register_shutdown_function

(PHP 4, PHP 5)

register_shutdown_function — Enregistre une fonction pour exécution à l'extinction

Description

void register_shutdown_function ( callback $function [, mixed $parameter [, mixed $... ]] )

Enregistre la fonction function pour exécution à l'extinction.

Plusieurs appels à register_shutdown_function() sont possibles dans le même script, et les fonctions seront appelées dans le même ordre que celui dans lequel elles sont enregistrées. Si vous appelez exit() durant l'une des fonctions d'extinction, le processus sera définitivement arrété, sans que les autres fonctions soient appelées.

En PHP 4.0.6 et précédent sous Apache, les fonctions d'extinction sont appelées après la fin de la requête (notamment les buffers ont été vidés), ce qui fait qu'il est impossible d'afficher du texte depuis cette fonction, avec echo() ou print(), ou encore de lire le contenu des buffers avec ob_get_contents(). Depuis PHP 4.1, les fonctions d'extinction sont appelées comme une partie de la requête, donc, il est possible d'envoyer l'affichage depuis ces dernières. Il n'y a actuellement aucune façon de traiter les données avec les fonctions d'affichage du buffer dans la fonction d'extinction. La fonction d'extinction est appelé après avoir fermée tous les buffers de sortie ouverts, de ce fait, par exemple, la sortie ne sera pas compressée si zlib.output_compression est activé.

Depuis PHP 4, il est possible de passer des paramètres à la fonction d'extinction en passant des paramètres additionnels à la fonction register_shutdown_function().

Liste de paramètres

function

parameter

...

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Typiquement, les fonctions non définies causent des erreurs fatales en PHP, mais lorsque la fonction function est appelée avec register_shutdown_function() en étant non définie, une erreur de type E_WARNING est générée. De plus, pour des raisons internes à PHP cette erreur va être indiquée comme Unknown at line #0.

Note: Le dossier de travail du script peut changer dans la fonction d'extinction sous quelques serveurs web, e.g. Apache.

Note: La fonction d'extinction est appelé durant l'arrêt du script, donc, les en-têtes sont toujours déjà envoyés.

Voir aussi