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入门速成(2)
Oct 09 PHP
PHP 一个随机字符串生成代码
May 26 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
php将mysql数据库整库导出生成sql文件的具体实现
Jan 08 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
PHP扩展CURL的用法详解
Jun 20 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
PHP编程获取各个时间段具体时间的方法
May 26 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
php和vue配合使用技巧和方法
May 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
PHP 第二节 数据类型之转换
2012/04/28 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
php读取本地json文件的实例
2018/03/07 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
2013/07/31 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
js实现简单的秒表
2020/01/16 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
python 如何调用远程接口
2020/09/11 Python
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
护理专业个人求职简历的自我评价
2013/10/13 职场文书
买房协议书
2014/04/11 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
活动总结怎么写啊
2014/05/07 职场文书
工作作风建设心得体会
2014/10/22 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
检讨书怎么写?
2019/06/21 职场文书
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android