Maison >développement back-end >tutoriel php >Explication détaillée de la fonction Register_shutdown_function

Explication détaillée de la fonction Register_shutdown_function

步履不停
步履不停original
2019-06-06 14:43:593306parcourir

Explication détaillée de la fonction Register_shutdown_function

Lors du développement et du test de PHP et en ligne, vous pouvez définir les besoins de gestion des erreurs et des exceptions en fonction de différentes situations

Définissez trois fonctions pour la gestion des erreurs et des exceptions

register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数
set_error_handler(array(‘Debug’,'appError’)); // 设置一个用户定义的错误处理函数
set_exception_handler(array(‘Debug’,'appException’)); //自定义异常处理。

Parlons de la fonction register_shutdown_function().


Fonction La fonction :register_shutdown_function() peut implémenter une fonction qui est exécutée une fois l'exécution du programme terminée. Sa fonction est d'implémenter les opérations suivantes une fois l'exécution du programme terminée. Il peut y avoir un délai d'attente d'exécution ou un arrêt forcé lorsque le programme est en cours d'exécution, mais l'invite par défaut dans ce cas est très peu conviviale. Si vous utilisez la fonction register_shutdown_function() pour intercepter les exceptions, vous pouvez fournir une méthode d'affichage des erreurs plus conviviale. Dans le même temps, des opérations de suivi de certaines fonctions peuvent être mises en œuvre, telles que le nettoyage temporaire des données après la fin de l'exécution, y compris les fichiers temporaires, etc.

Vous pouvez comprendre les conditions d'appel comme ceci :

1 Lorsque la page est forcée de s'arrêter par l'utilisateur

2. le code expire

3. Lorsque l'exécution du code PHP est terminée, il y a des exceptions, des erreurs et des avertissements dans l'exécution du code

Exemple de description

1. Un bref exemple, appelant une fonction

<?php
    function test() {
        echo "test()";
    }
    register_shutdown_function(array("test"));
    echo "show: ";
 ?>

Cet exemple génère

show: test()

La fonction de cette fonction est d'appeler la fonction enregistrée et d'exécuter la fonction avant de quitter le script.

2. Utiliser un tableau comme paramètre dans la classe

<?php
class ClassDemo {
    public function __construct() {
        register_shutdown_function(array($this, "f"));
    }
 
    public function f() {
        echo "f()";
    }
}
 
$demo = new ClassDemo();
echo "before </br>";
?>

Sortie :

before
f()

3 Exemple avec des paramètres :

<?php
function f($str) {
        echo $str."<br>";
}
  
register_shutdown_function("f","hello");
 
class ClassDemo {
    public function __construct() {
        register_shutdown_function(array($this, "f"),"hello");
    }
 
    public function f($str) {
        echo "f():".$str;
    }
}
 
$demo = new ClassDemo();
echo "before </br>";  
?>

Notes.

1. La fonction register_shutdown_function()

peut être appelée à plusieurs reprises , mais l'ordre d'exécution est le même que l'ordre d'enregistrement 2 , s'il y a un appel de fonction exit()
avant d'appeler la fonction register_shutdown_function() , la fonction register_shutdown_function() ne sera pas exécutée 3. ,
prend en charge le passage des paramètres de la fonction d'enregistrement (Tutoriel vidéo PHP)4 Sur certains serveurs, tels qu'Apache,
le répertoire actuel peut être modifié dans register_shutdown_function(). function5.register_shutdown_function ()
La fonction est exécutée après l'envoi des en-têtes

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn