网络编程 
首页 > 网络编程 > 浏览文章

PHP register_shutdown_function()函数的使用示例

(编辑:jimmy 日期: 2024/10/15 浏览:3 次 )

通过 register_shutdown_function 方法,可以让我们设置一个当执行关闭时可以被调用的另一个函数。

也就是说,当我们的脚本执行完成或者意外死掉导致 php 执行即将关闭时,我们的这个函数会被调用。

【使用场景】

① 页面被(用户)强制停止

② 程序代码意外终止或超时

③ php4 中没有析构函数,可以使用该函数模拟析构函数

shutdown.php

<"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 方法时,第一个参数一定要使用绝对路径。

上一篇:php中header设置常见文件类型的content-type
下一篇:PHP配置把错误日志以邮件方式发送方法(Windows系统)
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?