我是靠谱客的博主 儒雅大神,最近开发中收集的这篇文章主要介绍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。当然,要是你程序是缺个标点或者多了个特殊字符啥的,那就没办法了。

最后

以上就是儒雅大神为你收集整理的PHP中使用register_shutdown_function函数截获fatal error示例的全部内容,希望文章能够帮你解决PHP中使用register_shutdown_function函数截获fatal error示例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(148)

评论列表共有 0 条评论

立即
投稿
返回
顶部