Home >Backend Development >PHP Tutorial >In-depth understanding of register_shutdown_function in php

In-depth understanding of register_shutdown_function in php

黄舟
黄舟Original
2017-07-24 14:46:411516browse

register_shutdown_function() function can realize the function that is executed after the program execution is completed. Its function is to realize the subsequent operations after the program execution is completed. Friends in need can refer to the following

Setting the three functions of error and exception handling


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

Function: register_shutdown_function() function can realize the function that is executed when the program execution is completed. Its function is to realize the subsequent operations after the program execution is completed. There may be an execution timeout or forced shutdown when the program is running, but the default prompt in this case is very unfriendly. If you use the register_shutdown_function() function to catch exceptions, you can provide a more friendly error display method. At the same time, Follow-up operations of some functions can be implemented, such as temporary data cleaning after completion of execution, including temporary files, etc.

You can understand the calling conditions like this:

1. When the page is forced to stop by the user

2. When the program code runs out of time

3. When the PHP code execution is completed, there are exceptions, errors, and warnings in the code execution

example1:


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

//将输出
show:test()

example2:


<?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()

example3:


<?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, register_shutdown_function() function It can be called repeatedly, but the order of execution is the same as the order of registration
2. If there is an exit() function call before calling the register_shutdown_function() function, the register_shutdown_function() function will not be executed
3. Registered functions are supported after PHP4 Parameter passing
4. On some servers, such as Apache, the current directory can be changed in the register_shutdown_function() function
5. The register_shutdown_function() function is executed after the headers are sent

The above is the detailed content of In-depth understanding of register_shutdown_function in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn