ホームページ > php教程 > php手册 > PHP中使用register_shutdown_function函数截获fatal error示例

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

WBOY
リリース: 2016-06-13 09:06:19
オリジナル
1066 人が閲覧しました

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

   这篇文章主要介绍了PHP中使用register_shutdown_function函数截获fatal error示例,需要的朋友可以参考下

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

  那我们有什么方法可以提前截获到fatal error,并用我们自己自定义的友好形式反馈给用户呢。PHP中有一个叫做 register_shutdown_function 的函数,可以让我们设置一个当执行关闭时可以被调用的另一个函数.也就是说当我们的脚本执行完成或意外死掉导致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
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート