ホームページ >バックエンド開発 >PHPチュートリアル >PHP の register_shutdown_function についての深い理解

PHP の register_shutdown_function についての深い理解

黄舟
黄舟オリジナル
2017-07-24 14:46:411518ブラウズ

register_shutdown_function() 関数は、プログラムの実行が完了した後に実行される関数を実装できます。その機能は、プログラムの実行が完了した後に続く操作を実装することです。

エラーと例外の 3 つの関数を設定します。処理


register_shutdown_function(array(‘Debug','fatalError')); //定义PHP程序执行完成后执行的函数
set_error_handler(array(‘Debug','appError')); // 设置一个用户定义的错误处理函数
set_exception_handler(array(‘Debug','appException')); //自定义异常处理。

関数: register_shutdown_function() 関数は、プログラムの実行が完了した後に実行される関数を実現できます。その機能は、プログラムの実行が完了した後の後続の操作を実現することです。プログラムの実行中に実行タイムアウトまたは強制シャットダウンが発生する可能性がありますが、この場合のデフォルトのプロンプトは非常に不親切です。 register_shutdown_function() 関数を使用して例外をキャッチすると、よりわかりやすいエラー表示方法を提供できます。同時に、実行完了後の一時ファイルなどの一時データのクリーニングなど、一部の機能のフォローアップ操作も実装できます。

呼び出し条件は次のように理解できます:

1. ユーザーによってページが強制停止されたとき

2. プログラムコードが時間切れになったとき

3. PHP コードの実行が完了したときコードの実行に例外、エラー、警告があります

example1:


<?php
function test() {
  echo "test()";
}
register_shutdown_function("test");
echo "show: ";

//将输出
show:test()

example2:


<?php
 class ClassDemo {
     public function __construct() {
       register_shutdown_function(array($this, "f"));
     }
  
     public function f() {
       echo "f()";
     }
   }
 
   $demo = new ClassDemo();
   echo "before </br>";

//将输出
before
f()

example3:


<?php
function f($str) {
    echo $str."<br>";
}
 
register_shutdown_function("f","hello");

  class ClassDemo {
    public function __construct() {
      register_shutdown_function(array($this, "f"),"hello");
    }
 
    public function f($str) {
      echo "f():".$str;
    }
  }

$demo = new ClassDemo();
echo "before </br>";

//将输出
before
hello
f():hello

Notes

1、 register_shutdown_function() 関数繰り返し呼び出すことができますが、実行の順序は登録の順序と同じです
2、 register_shutdown_function() 関数を呼び出す前に exit() 関数の呼び出しがある場合、 register_shutdown_function() 関数は実行されません
3、PHP4登録関数パラメーターの受け渡しをサポートします
4。Apache などの一部のサーバーでは、現在のディレクトリ
5 は register_shutdown_function() 関数で変更できます。 register_shutdown_function() 関数はヘッダーの送信後に実行されます

以上がPHP の register_shutdown_function についての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。