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
ajax 的post方法实例(带循环)
Jul 04 PHP
PHP中使用数组实现堆栈数据结构的代码
Feb 05 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
php  单例模式详细介绍及实现源码
Nov 05 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
Feb 28 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
php连接mysql数据库最简单的实现方法
Sep 24 PHP
php swoft框架实例用法
Dec 22 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编码规范
2015/09/28 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
node.js超时timeout详解
2014/11/26 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
python将html转成PDF的实现代码(包含中文)
2013/03/04 Python
python集合用法实例分析
2015/05/30 Python
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
Java基础知识面试题
2014/03/25 面试题
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
公务员综合考察材料
2014/02/01 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
文明社区申报材料
2014/08/21 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
利用Redis实现点赞功能的示例代码
2022/06/28 Redis