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新手上路(九)
Oct 09 PHP
?算你??的 PHP 程式大小
Dec 06 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
用PHP来计算某个目录大小的方法
Apr 01 PHP
PHP图片等比例缩放生成缩略图函数分享
Jun 10 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
Nov 19 PHP
php实现curl模拟ftp上传的方法
Jul 29 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 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
咖啡的化学
2021/03/03 咖啡文化
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
js实现简单的可切换选项卡效果
2015/04/10 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
用Python编程实现语音控制电脑
2014/04/01 Python
Python命令行解析模块详解
2018/02/01 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
Python中itertools的用法详解
2020/02/07 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
局域网标准
2016/09/10 面试题
高三自我鉴定怎么写
2013/10/19 职场文书
会计专业应届生求职信
2013/11/24 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
MySQL数据库中的锁、解锁以及删除事务
2022/05/06 MySQL