ホームページ  >  記事  >  バックエンド開発  >  PHP の詳細な分析 register_shutdown_function function_PHP チュートリアル

PHP の詳細な分析 register_shutdown_function function_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:09:05947ブラウズ

スクリプトは頻繁に機能しなくなるため、ユーザーに致命的なエラーを表示したり、空白のページを表示したりすることは望ましくありません (display_errors が off に設定されている場合)。これを可能にする register_shutdown_function と呼ばれる関数があります。実行がシャットダウンされたときに呼び出せる別の関数を設定しました つまり、スクリプトの実行が完了するか、予期せず終了して PHP の実行がシャットダウンされた場合、関数は と呼ばれます。したがって、スクリプトの先頭で変数を false に設定し、スクリプトの最後で変数を true に設定して、PHP にコールバック関数を閉じてスクリプトが完了したかどうかを確認させる方法を使用できます。変数はまだ false です。スクリプトの終わりがわかっています。行が実行されなかったので、プログラムのどこかで停止したに違いありません。致命的なエラーが発生したときにユーザーに適切なフィードバックを与える方法を示す、非常に基本的な例を用意しました。エラーを表示する必要があります。これを行うには、致命的なエラーの表示 (注釈: display_errors と error_reporting を設定できます) を閉じます。

コードをコピーします コードは次のとおりです。
$clean = false;
function shutdown_func() {
global $clean;
if (!$clean){
die("クリーンなシャットダウンではありません");
}
return false;
}
register_shutdown_function("shutdown_func");
$a = 1;
$a = new FooClass(); // 致命的なエラーで失敗します
$clean = true;
?>


コールバック関数が実行されている場合、clean 変数が true に設定されていない場合、shutdown_func 関数が出力されます。これは (グローバル変数を使用せずに) クラスにパッケージ化できます。PHP は、この関数を呼び出すことができる register_shutdown_function() 関数を提供します。 PHP プログラムの実行後に実行される、スクリプトが終了する前に登録された関数を戻します。
register_shutdown_function 実行メカニズムは次のとおりです: PHP は呼び出される関数をメモリに転送します。この関数は、ページ上のすべての PHP ステートメントが実行されたときに再度呼び出されます。現時点では、PHP ページからではなくメモリから呼び出されるため、PHP は元のページが存在しないとすでに想定しているため、上記の例では相対パスを使用できないことに注意してください。相対パスはまったくありません。


注: register_shutdown_function は、すべての PHP ステートメントが実行された後に関数を呼び出すことを意味します。クライアントがストリーミング ブラウザー ページを閉じるときに関数を呼び出すとは理解しないでください。 呼び出し条件は次のように理解できます:

1. ユーザーによってページが強制的に停止されたとき
2. プログラムコードが時間切れになったとき 3. PHP コードの実行が完了したときコード実行時の例外、エラー、警告


http://www.bkjia.com/PHPjc/327395.html

tru​​ehttp://www.bkjia.com/PHPjc/327395.html技術記事スクリプトは頻繁に機能しなくなり、常に見た目が良くなるわけではありません。致命的なエラーや空白のページ (display_errors が off に設定されている場合) をユーザーに表示したくありません。PHP には... と呼ばれるメソッドがあります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。