Home >Backend Development >PHP Tutorial >In-depth understanding of register_shutdown_function in php
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!