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 smarty的预保留变量总结
Dec 04 PHP
php设计模式 Visitor 访问者模式
Jun 28 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
thinkPHP查询方式小结
Jan 09 PHP
PHP闭包函数详解
Feb 13 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
Dec 12 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
PHP-FPM和Nginx的通信机制详解
Feb 01 PHP
详解PHP素材图片上传、下载功能
Apr 12 PHP
PHP 并发场景的几种解决方案
Jun 14 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 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
PHPlet在Windows下的安装
2006/10/09 PHP
实用函数3
2007/11/08 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
vue-dialog的弹出层组件
2020/05/25 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
用Python编程实现语音控制电脑
2014/04/01 Python
python妙用之编码的转换详解
2017/04/21 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
优秀毕业生自荐信范文
2014/01/01 职场文书
小学生思想品德评语
2014/12/31 职场文书
英文道歉信
2015/01/20 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
python中filter,map,reduce的作用
2022/06/10 Python
windows系统安装配置nginx环境
2022/06/28 Servers