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水印技术
Feb 14 PHP
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
php+javascript的日历控件
Nov 19 PHP
Mysql中分页查询的两个解决方法比较
May 02 PHP
深入PHP数据加密详解
Jun 18 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
PHP生成和获取XML格式数据的方法
Mar 04 PHP
php bootstrap实现简单登录
Mar 08 PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
Aug 20 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 is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
javascript 动态添加事件代码
2008/11/30 Javascript
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
使用jquery修改表单的提交地址基本思路
2014/06/04 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
koa-router源码学习小结
2018/09/07 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
详解vue在项目中使用百度地图
2019/03/26 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
Python 模板引擎的注入问题分析
2017/01/01 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
印度购物网站:TATA CLiQ
2017/11/23 全球购物
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
Oracle的内存结构(Memory structures)
2015/06/10 面试题
函授毕业生的自我鉴定
2013/11/26 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
于丹论语心得观后感
2015/06/15 职场文书
服装店员工管理制度
2015/08/07 职场文书