During php development, testing and online, you can set the error and exception handling needs according to different situations.
Setting three functions for error and exception handling
register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数 set_error_handler(array(‘Debug’,'appError’)); // 设置一个用户定义的错误处理函数 set_exception_handler(array(‘Debug’,'appException’)); //自定义异常处理。
Let’s talk about the register_shutdown_function() function.
Function The :register_shutdown_function() function can implement a function that is executed after the program execution is completed. Its function is to implement 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
Example description
1. A brief example, calling a function
<?php function test() { echo "test()"; } register_shutdown_function(array("test")); echo "show: "; ?>
This example output
show: test()
The function of this function is to call the registered function and execute the function before exiting the script.
2. Use an array as a parameter in the class
<?php class ClassDemo { public function __construct() { register_shutdown_function(array($this, "f")); } public function f() { echo "f()"; } } $demo = new ClassDemo(); echo "before </br>"; ?>
Output:
before f()
3. Example with parameters:
<?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
1, register_shutdown_function() function 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, after PHP4 supports registration function parameter passing (PHP video tutorial)
4, on some servers, such as Apache, The current directory can be changed in the register_shutdown_function() function
5, register_shutdown_function ()The function is executed after the headers are sent
The above is the detailed content of register_shutdown_function function detailed explanation. For more information, please follow other related articles on the PHP Chinese website!