register_shutdown_function
(PHP 4, PHP 5, PHP 7)
register_shutdown_function — シャットダウン時に実行する関数を登録する
説明
スクリプト処理が完了したとき、あるいは exit() がコールされたときに実行するコールバック関数を登録します。
register_shutdown_function() は複数回コールする ことが可能で、登録された順に関数がコールされます。 登録した関数内で exit() をコールした場合、 処理はそこで終了してその他のシャットダウン関数はコールされません。
パラメータ
callback
登録するコールバック。
シャットダウン時のコールバックは、リクエストの一部として実行されます。 したがって、コールバック関数からも出力を送信できるし、出力バッファにもアクセスできます。
args
シャットダウン関数にパラメータを渡すには、ここで追加のパラメータを渡します。
返り値
値を返しません。
エラー / 例外
指定したコールバックがコールできない場合は、E_WARNING
レベルのエラーが発生します。
例
例1 register_shutdown_function() の例
<?phpfunction shutdown(){ // これがシャットダウン関数で、 // スクリプトの処理が完了する前に // ここで何らかの操作をすることができます echo 'Script executed with success', PHP_EOL;}register_shutdown_function('shutdown');?>
注意
注意:
Apache などいくつかの Web サーバーでは、スクリプトの実行時ディレクトリを シャットダウン関数内で変更可能です。
注意:
SIGTERM あるいは SIGKILL でプロセスが終了した場合は、シャットダウン関数を実行しません。 SIGKILL を横取りすることはできませんが、SIGTERM 用のハンドラは pcntl_signal() で登録できます。ここで exit() を使えば、きれいに終わらせることができます。