Maison >développement back-end >tutoriel php >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 expire3. 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.
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!