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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
PHP初学者常见问题集合 修正版(21问答)
Mar 23 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
CI框架自动加载session出现报错的解决办法
Jun 17 PHP
2014最热门的24个php类库汇总
Dec 18 PHP
网站防止被刷票的一些思路与方法
Jan 08 PHP
PHP获得数组交集与差集的方法
Jun 10 PHP
Yii框架分页实现方法详解
May 20 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
PHP $_SERVER详解
2009/01/16 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python实现合并两个列表的方法分析
2018/05/28 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
PageFactory设计模式基于python实现
2020/04/14 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
英语系毕业生自荐信
2013/10/31 职场文书
yy结婚证婚词
2014/01/10 职场文书
上课玩手机检讨书
2014/02/08 职场文书
运动会横幅标语
2014/06/17 职场文书
法人委托书范本格式
2014/09/15 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
律政俏佳人观后感
2015/06/09 职场文书
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python