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 相关文章推荐
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
Apr 13 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
PHP设计模式之迭代器模式的深入解析
Jun 13 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
Jun 20 PHP
分享8个最佳的代码片段在线测试网站
Jun 29 PHP
php微信公众账号开发之前五个坑(一)
Sep 18 PHP
php表单处理操作
Nov 16 PHP
php post json参数的传递和接收处理方法
May 31 PHP
Ajax+PHP实现的删除数据功能示例
Feb 12 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
laravel使用redis队列实例讲解
Mar 23 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 array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
精通Javascript系列之数值计算
2011/06/07 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
在centos7中分布式部署pyspider
2017/05/03 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
python创建学生管理系统
2019/11/22 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Python 防止死锁的方法
2020/07/29 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
介绍一下gcc特性
2012/01/20 面试题
读书演讲主持词
2014/03/18 职场文书
丧事主持词大全
2014/04/02 职场文书
倡议书格式模板
2014/05/13 职场文书
建筑施工安全生产责任书
2014/07/22 职场文书
人大代表选举标语
2014/10/07 职场文书
债务纠纷代理词
2015/05/25 职场文书
利用python调用摄像头的实例分析
2021/06/07 Python
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL