PHP截获fatal error实例
程序员文章站
2022-03-03 23:38:07
...
PHP如何截获fatal error?本文主要介绍了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截获fatal error实例的详细内容,更多请关注其它相关文章!
推荐阅读
-
php运行提示:Fatal error Allowed memory size内存不足的解决方法
-
[PHP] error_reporting(0)可以屏蔽Fatal error错误
-
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function【转】
-
php日志函数error_log用法实例分析
-
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
-
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
-
PHP捕获Fatal error错误的方法
-
Fatal error: 'break' not in the 'loop' or 'switch' context in Function.php
-
Windows平台的 PHP 报错 Fatal error: Class COM not found in 的解决方法
-
PHP中Fatal error session_start()错误解决步骤