这篇文章主要介绍了PHP register_shutdown_function()函数的使用示例,当我们的脚本执行完成或者意外死掉导致 php 执行即将关闭时,register_shutdown_function()这个函数会被调用,需要的朋友可以参考下
通过 register_shutdown_function 方法,可以让我们设置一个当执行关闭时可以被调用的另一个函数。
也就是说,当我们的脚本执行完成或者意外死掉导致 php 执行即将关闭时,我们的这个函数会被调用。
【使用场景】
① 页面被(用户)强制停止
② 程序代码意外终止或超时
③ php4 中没有析构函数,可以使用该函数模拟析构函数
shutdown.php
- <?php
- header("content-type:text/html;charset=utf-8");
- class Shutdown{
- public function endScript(){
- if(error_get_last()){
- echo '<pre>';
- print_r(error_get_last());
- echo '</pre>';
- }
- file_put_contents('D:/practise/php/Error/error.txt', 'this is a test');
- die('脚本结束');
- }
- }
- register_shutdown_function(array(new Shutdown(), 'endScript'));
- //错误测试
- echo md6();
执行,输出:
( ! ) Fatal error: Call to undefined function md6() in D:/practise/php/Error/shutdown.php on line 18
- Array
- (
- [type] => 1
- [message] => Call to undefined function md6()
- [file] => D:/practise/php/Error/shutdown.php
- [line] => 18
- )
脚本结束代码如下:
D:/practise/php/Error/error.txt:
this is a test
注意:register_shutdown_function 方法是从内存中调用的,因此在使用 file_put_contents 方法时,第一个参数一定要使用绝对路径。
新闻热点
疑难解答