PHP错误处理函数register_shutdown_function使用示例


Posted in PHP onJuly 03, 2017

当程序在线上运行时,如果遇到BUG,想不在前端输出错误信息,同时能及时邮件通知开发者,register_shutdown_function函数就可以派上用场了。

注册一个会在脚本执行完成或者 exit() 后被调用的函数。

可以多次调用 register_shutdown_function() ,这些被注册的回调会按照他们注册时的顺序被依次调用。 如果你在注册的方法内部调用 exit(), 那么所有处理会被中止,并且其他注册的中止回调也不会再被调用。

register_shutdown_function 函数,当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会 被调用,可以配合 error_get_last 使用,获取错误信息。

register_shutdown_function ( callable $callback [, mixed $parameter [, mixed $... ]] )

callable 回调函数

parameter 可以通过传入额外的参数来将参数传给中止函数

DEMO1:

//关闭错误报告
error_reporting(0);
//实现自己的错误信息展示
register_shutdown_function(‘myShutdown‘);
$debug = true;
function myShutdown() {
  global $debug;
  // 无论错误是否发生,这句都会执行
  echo ‘ERROR‘ , ‘<br/>‘;
  if (!$debug) {
    $error = error_get_last();
    // todo 可以在这里做邮件发送提醒 或 错误日志收集
    var_export($error);
  }
}

DEMO2

// 回到函数带参数:记录当前请求URL
$current_page = htmlspecialchars($_SERVER[‘SCRIPT_NAME‘], ENT_QUOTES, ‘UTF-8‘);
$current_page .= $_SERVER[‘QUERY_STRING‘] ? ‘?‘.htmlspecialchars($_SERVER[‘QUERY_STRING‘], ENT_QUOTES, ‘UTF-8‘) : ‘‘;
register_shutdown_function(function ($current_page) {
  //todo send email or log
}, $current_page);
error_get_last() 
//错误信息查看:http://php.net/manual/zh/errorfunc.constants.php

以上所述是小编给大家介绍的PHP错误处理函数register_shutdown_function使用示例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
扩展你的 PHP 之入门篇
Dec 04 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
Dec 06 PHP
ThinkPHP登录功能的实现方法
Aug 20 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
PHP发送AT指令实例代码
May 26 PHP
PHP判断一个数组是另一个数组子集的方法详解
Jul 31 PHP
浅析PHP数据导出知识点
Feb 17 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 PHP
浅谈PHP5.6 与 PHP7.0 区别
Oct 09 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 #PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
Jul 03 #PHP
thinkPHP多表查询及分页功能实现方法示例
Jul 03 #PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 #PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
Jul 03 #PHP
php获取文章内容第一张图片的方法示例
Jul 03 #PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
Jul 03 #PHP
You might like
深入了解php4(1)--回到未来
2006/10/09 PHP
php中对xml读取的相关函数的介绍一
2008/06/05 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
Python检测网站链接是否已存在
2016/04/07 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
千元咖啡店的创业计划书范文
2013/12/29 职场文书
函授药学自我鉴定
2014/02/07 职场文书
挂牌仪式主持词
2014/03/20 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
扬州个园导游词
2015/02/06 职场文书
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis