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+oracle 分页类
Oct 09 PHP
PHP 年龄计算函数(精确到天)
Jun 07 PHP
PHP面向对象——访问修饰符介绍
Nov 08 PHP
ThinkPHP CURD方法之table方法详解
Jun 18 PHP
PHP调用C#开发的dll类库方法
Jul 28 PHP
PHP提高编程效率的20个要点
Sep 23 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 PHP
php使用fullcalendar日历插件详解
Mar 06 PHP
PHP文件上传小程序 适合初学者学习!
May 23 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结合表单实现一些简单功能的例子
2011/06/04 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
HTML中事件触发列表与解说
2007/07/09 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
AI人工智能 Python实现人机对话
2017/11/13 Python
Python3最长回文子串算法示例
2019/03/04 Python
python中的decimal类型转换实例详解
2019/06/26 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
Python表达式的优先级详解
2020/02/18 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
处理textarea中的换行和空格
2019/12/12 HTML / CSS
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物