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动态生成VRML网页
Oct 09 PHP
php 分页原理详解
Aug 21 PHP
PHP常用代码大全(新手入门必备)
Jun 29 PHP
php max_execution_time执行时间问题
Jul 17 PHP
php 中的4种标记风格介绍
May 10 PHP
深入PHP FTP类的详解
Jun 13 PHP
PHP借助phpmailer发送邮件
May 11 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
php实现的http请求封装示例
Nov 08 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
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
PHP中用hash实现的数组
2011/07/17 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
JavaScript实现身份证验证代码实例
2019/08/26 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
详细探究Python中的字典容器
2015/04/14 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
django ajax发送post请求的两种方法
2020/01/05 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
django中的数据库迁移的实现
2020/03/16 Python
python中JWT用户认证的实现
2020/05/18 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
python函数超时自动退出的实操方法
2020/12/28 Python
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
海飞丝广告词
2014/03/20 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
黄埔军校观后感
2015/06/10 职场文书
未婚证明范本
2015/06/15 职场文书
护士心得体会范文
2016/01/25 职场文书
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js