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的session cookie错误
Aug 09 PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
php多文件上传实现代码
Feb 20 PHP
php像数组一样存取和修改字符串字符
Mar 21 PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 PHP
PHP开发框架laravel安装与配置教程
Mar 13 PHP
php线性表的入栈与出栈实例分析
Jun 12 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP crypt()函数的用法讲解
Feb 15 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树型类实例
2014/12/05 PHP
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
Python的randrange()方法使用教程
2015/05/15 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
开工典礼策划方案
2014/05/23 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
2015年科室工作总结
2015/04/10 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书