Fonctions sur la gestion des fonctions
PHP Manual

register_shutdown_function

(PHP 4, PHP 5)

register_shutdown_functionEnregistre une fonction pour exécution à l'extinction

Description

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

register_shutdown_function() enregistre la fonction function 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

function

La fonction à enregistrer, pour exécution à l'extinction.

Une fonction d'extinction est appelée dans le traitement d'une requête, ce qui fait qu'il est possible d'envoyer des messages depuis ces fonctions. Il n'y a actuellement aucun moyen de traiter les données avec les fonctions de bufferisation dans la fonction d'extinction.

Les fonctions d'extinction sont appelées après avoir fermé tous les buffers, et, par exepmle, le contenu ne sera pas compressé si zlib.output_compression a été activé.

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.

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: 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.

Voir aussi


Fonctions sur la gestion des fonctions
PHP Manual