时间:2021-05-26
我们在做项目时,偶尔会因为不谨慎而出现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。当然,要是你程序是缺个标点或者多了个特殊字符啥的,那就没办法了。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
设定错误和异常处理三函数register_shutdown_function(array(‘Debug','fatalError'));//定义PHP程序执行完
前言最近在看《PHP核心技术与最佳实践》,里面有使用到一个函数,register_shutdown_function,由于之前没有用过该函数,就去查了一下资料,
当程序在线上运行时,如果遇到BUG,想不在前端输出错误信息,同时能及时邮件通知开发者,register_shutdown_function函数就可以派上用场了。
本文实例讲述了PHP函数超时处理方法。分享给大家供大家参考,具体如下:register_shutdown_functionRegistersthefunctio
根据php手册的解析。__destruct是析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。而register_shutdown_funct