ホームページ  >  記事  >  バックエンド開発  >  PHPの register_shutdown_function 関数の分析

PHPの register_shutdown_function 関数の分析

不言
不言オリジナル
2018-04-09 16:13:531559ブラウズ

この記事は PHP register_shutdown_function 関数の分析と紹介です。必要な方は参考にしてください。

スクリプトは頻繁に停止するため、致命的なエラーや空白を表示する必要はありません。 (display_errors が off に設定されている場合) PHP には register_shutdown_function という関数があり、これを使用すると、実行がシャットダウンされたときに呼び出すことができる別の関数を設定できます。 PHP の実行がシャットダウンされようとすると、関数が呼び出されます。そのため、スクリプトの先頭で変数を false に設定し、スクリプトの最後で true に設定するという方法を使用できます。スクリプトの最後で PHP がコールバックを閉じるようにします。関数はスクリプトが完了したかどうかをチェックします。変数がまだ false の場合は、スクリプトの最後の行が実行されていないことがわかります。そのため、スクリプトは途中で終了したはずです。致命的なエラーを表示する必要がある場合、ユーザーに適切なフィードバックをどのように提供するかを示す非常に基本的な例を用意しました。致命的なエラーの表示をオフにすることで、例の見栄えを良くすることができます (注釈: display_errors を設定できます)。

コードをコピー コードは次のとおりです:


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


ご覧のとおり、shutdown コールバック関数の実行中に clean 変数が true に設定されていない場合、shutdown_func 関数は何かを出力します。これはクラスにパッケージ化できます。 (グローバル変数を使用せず)
PHP は、スクリプトが終了する前に登録された関数、つまり PHP プログラムの実行が完了した後に実行される関数をコールバックできる register_shutdown_function() 関数を提供します。
register_shutdown_function 実行メカニズムは次のとおりです: PHP は呼び出される関数をメモリに転送します。この関数は、ページ上のすべての PHP ステートメントが実行されたときに再度呼び出されます。現時点では、PHP ページからではなくメモリから呼び出されるため、PHP は元のページが存在しないとすでに想定しているため、上記の例では相対パスを使用できないことに注意してください。相対パスはまったくありません。
注: register_shutdown_function は、すべての PHP ステートメントが実行された後に関数を呼び出すことを意味します。クライアントがストリーミング ブラウザー ページを閉じるときに関数を呼び出すとは理解しないでください。
呼び出し条件は次のように理解できます:
1. ユーザーによってページが強制的に停止されたとき
2. プログラムコードが時間切れになったとき
3. PHP コードの実行が完了したときコード実行の例外、エラー、および警告は推奨されています:php関数の静的変数を使用する方法

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

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