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中养成7个面向对象的好习惯
Jul 17 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 PHP
PHP使用xmllint命令处理xml与html的方法
Dec 15 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
php中简单的对称加密算法实现
Jan 05 PHP
php实现微信支付之现金红包
May 30 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
Mar 03 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实现图片上传、剪切功能
2016/05/07 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
学习python的几条建议分享
2013/02/10 Python
python实现图片批量剪切示例
2014/03/25 Python
python实现目录树生成示例
2014/03/28 Python
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Python中几种导入模块的方式总结
2017/04/27 Python
python+opencv实现动态物体识别
2018/01/09 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
篝火晚会主持词
2014/03/25 职场文书
综治宣传月活动总结
2014/04/28 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
员工升职自荐信
2015/03/27 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
分享Python获取本机IP地址的几种方法
2022/03/17 Python
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript