PHPregister_shutdown_function功能深入分析

剧本常常会消亡,并不总是那么美好。我们不想给用户显示一个致命的错误,或者一个空白的页面(在下display_errors案例)。有一个叫register_shutdown_function PHP函数,这样我们就可以建立一个关闭时执行可以是另一个函数调用。也就是说,当脚本完成或死亡时,意外导致PHP执行关闭过程,这个函数将被称为我们。所以,我们可以在设置变量错误的开始使用脚本,然后在脚本Matsuo Masano设置为true,让PHP的回调函数检查脚本的完整或不完整。如果变量仍然是false,那么我们知道脚本的最后一行是不执行的,所以它必须在程序执行中被关闭。我已经准备好了,一个非常基本的例子可以告诉你如何在出现致命错误时给用户一些适当的反馈。你可以让这个例子更好看关致命错误显示(display_errors和error_reporting)。
复制代码代码如下所示:
< PHP
美元=假;
功能shutdown_func(){
全球清洁;
如果(!清洁){
死(不是一个干净的关机);
}
返回false;
}
register_shutdown_function(shutdown_func );
$ = 1;
美元=新(fooclass); / /会失败,因为一个致命的错误
清洁=真实;
>

你可以看到,如果回调函数是关闭的,干净的变量没有设置为true,该shutdown_func函数将打印的东西。它可以作为一个类包装(没有全局变量)。
PHP提供了register_shutdown_function()函数,它可以回调函数注册脚本终止,在那之前,函数执行时,PHP程序执行。
的register_shutdown_function执行机制是PHP传递函数被调用到内存中,当页面中所有的PHP语句被执行,这个函数被调用,调用的记忆在这时间是不是从PHP页面调用,所以在上面的例子中不能使用相对路径,因为PHP已经离开了原始网页。没有相对路径说。
注:register_shutdown_function指所有PHP语句执行后调用函数,而不了解客户关闭浏览器页面时。
用这种方法理解调用条件是可能的:
1。当页面被迫被用户停止时
2。当程序代码随时间运行
三.当执行PHP代码时,在代码执行中有一个异常和错误,一个警告。