Maison >développement back-end >tutoriel php >Compréhension approfondie de register_shutdown_function en php
La fonction
register_shutdown_function() peut réaliser la fonction qui est exécutée une fois l'exécution du programme terminée. Sa fonction est de réaliser les opérations ultérieures une fois l'exécution du programme terminée. Les amis dans le besoin peuvent se référer à ce qui suit
pour définir les trois fonctions de 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')); //自定义异常处理。Fonction : la fonction register_shutdown_function() peut réaliser la fonction qui est exécutée lorsque l'exécution du programme est terminée. Sa fonction est de réaliser les opérations ultérieures une fois l'exécution du programme terminée. Il peut y avoir un délai 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 codeexemple1 :
<?php function test() { echo "test()"; } register_shutdown_function("test"); echo "show: "; //将输出 show:test()exemple2 :
<?php class ClassDemo { public function __construct() { register_shutdown_function(array($this, "f")); } public function f() { echo "f()"; } } $demo = new ClassDemo(); echo "before </br>"; //将输出 before f()exemple3 :
<?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>"; //将输出 before hello f():hello
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'enregistrement2. appelez avant d'appeler la fonction register_shutdown_function(), la fonction register_shutdown_function() ne sera pas exécutée
3 , PHP4 prend en charge le passage des paramètres de la fonction d'enregistrement
Sur certains serveurs, comme Apache, le répertoire courant peut être modifié dans le Fonction register_shutdown_function()
5. La fonction register_shutdown_function() 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!