register_shutdown_function

(PHP 4, PHP 5)

register_shutdown_functionEnregistre une fonction de rappel pour exécution à l'extinction

Description

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

Enregistre une fonction de rappel callback pour exécution à l'extinction ou lorsque exit() est appelé.

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.

Liste de paramètres

callback

La fonction de rappel à enregistrer.

La fonction de rappel est exécuté comme faisant parti de la requête, aussi, il est possible d'envoyer quelque à la sortie depuis cette dernière, puis d'accéder aux buffers de sortie.

parameter

Il est possible de passer des paramètres aux fonctions d'extinction en configurant ces paramètres supplémentaires.

...

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Si la fonction de rappel ne peut être appelée pour diverses raisons, une alerte de niveau E_WARNING sera émise.

Historique

Version Description
4.1.0 Les fonctions d'extinction font maintenant partie de la requête. Dans les versions précédentes, et sous Apache, les fonctions enregistrées étaient appelée une fois que la requête était complètement terminée. (y compris lorsque les buffers ont été vidés) ce qui fait qu'il n'était pas possible d'envoyer de contenu au navigateur avec echo ou print, ou encore lire le contenu avec les fonctions ob_get_contents(). Les en-têtes étaient également toujours envoyés.

Exemples

Exemple #1 Exemple avec register_shutdown_function()

<?php
function shutdown()
{
	// Voici notre fonction shutdown
	// dans laquelle nous pouvons faire
	// toutes les dernières opérations
	// avant la fin du script.

	echo 'Script exécuté avec succès', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

Notes

Note:

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

Note:

Les fonctions d'extinction ne seront pas exécutées si le processus est tué avec un signal SIGTERM ou SIGKILL. Bien que vous ne pouvez pas intercepter un SIGKILL, vous pouvez utiliser la fonction pcntl_signal() pour installer un gestionnaire pour un SIGTERM qui utilisera la fonction exit() pour mettre fin proprement.

Voir aussi

LoadingChargement en cours