Maison >développement back-end >tutoriel php >Compréhension approfondie de register_shutdown_function en php

Compréhension approfondie de register_shutdown_function en php

黄舟
黄舟original
2017-07-24 14:46:411516parcourir

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

exemple1 :


<?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'enregistrement

2. 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!

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