PHP中使用register_shutdown_function函数截获fatal error示例

 更新时间:2015年04月21日 09:41:03   投稿:junjie   我要评论
这篇文章主要介绍了PHP中使用register_shutdown_function函数截获fatal error示例,需要的朋友可以参考下

我们在做项目时,偶尔会因为不谨慎而出现fatal error。如果display_errors设置成off,那用户将会看到的是一个空白的页面。若设置成了on,那fatal error的信息将会呈现出来(当然正常的人都不会这样干)。

那我们有什么方法可以提前截获到fatal error,并用我们自己自定义的友好形式反馈给用户呢。PHP中有一个叫做  register_shutdown_function 的函数,可以让我们设置一个当执行关闭时可以被调用的另一个函数.也就是说当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,这个函数将会被调用。
下面请看一个例子:

复制代码 代码如下:

<?php
$flag = false;
function deal_error(){
    global $flag;
    if (!$flag){
        die("粗问题啦,请稍后再试");
    }
    return false;
}
register_shutdown_function("deal_error");
//将因为致命错误而失败
//$obj = new NotExistClass(); //引入未定义的类
require('./test.php');
$flag = true;

我们在程序入口处,设置flag为false,最后设置成true,表明程序正常执行。若flag最后不为true,说明在中间某个地方死掉了,此时就会调用register_shutdown_function,输出我们自定义的错误结果。

如上面的类未定义、引入不存在的文件(必须使用require或require_once)等会导致fatal error。当然,要是你程序是缺个标点或者多了个特殊字符啥的,那就没办法了。

相关文章

  • Laravel框架Auth用户认证操作实例分析

    Laravel框架Auth用户认证操作实例分析

    这篇文章主要介绍了Laravel框架Auth用户认证操作,结合实例形式分析了Auth用户认证的相关操作步骤、实现技巧与使用注意事项,需要的朋友可以参考下
    2019-09-09
  • 深入学习微信网址链接解封的防封原理visit_type

    深入学习微信网址链接解封的防封原理visit_type

    这篇文章主要介绍了深入学习微信网址链接解封的防封原理visit_type,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 详解PHP中instanceof关键字及instanceof关键字有什么作用

    详解PHP中instanceof关键字及instanceof关键字有什么作用

    这篇文章主要介绍了PHP中instanceof关键字详解及instanceof关键字有什么作用的相关资料,需要的朋友可以参考下
    2015-11-11
  • PHP远程调试之XDEBUG

    PHP远程调试之XDEBUG

    开发的时候我都是使用XDebug在本地调试,但是最近加入一些项目中去,环境太复杂了,要在本地搭建一个开发环境真的太麻烦了,那么我们怎么使用xdebug来远程调试呢?下面通过本篇文章给大家介绍php xdebug远程调试方法,感兴趣的朋友一起看看吧
    2015-12-12
  • 56.com视频采集接口程序(PHP)

    56.com视频采集接口程序(PHP)

    56.com视频采集接口程序(PHP)...
    2007-09-09
  • PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法

    PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法

    这篇文章主要介绍了PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法,包括获取目标IP所在的国家地区等信息,需要的朋友可以参考下
    2016-07-07
  • PHP curl伪造IP地址和header信息代码实例

    PHP curl伪造IP地址和header信息代码实例

    这篇文章主要介绍了PHP curl伪造IP地址和header信息代码实例,本文给出服务器端和客户端实现代码,提供伪造功能和服务器端检测代码,需要的朋友可以参考下
    2015-04-04
  • PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库

    PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库

    这篇文章主要介绍了PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库的相关资料,需要的朋友可以参考下
    2015-11-11
  • Laravel如何自定义command命令浅析

    Laravel如何自定义command命令浅析

    这篇文章主要给大家介绍了关于Laravel如何自定义command命令的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • yii分页组件用法实例分析

    yii分页组件用法实例分析

    这篇文章主要介绍了yii分页组件用法,结合实例形式较为详细的分析了yii分页组件的调用及具体的分页显示实现技巧,需要的朋友可以参考下
    2015-12-12

最新评论