2009-08-08 12 views
7

die()またはexit()でスクリプトが終了したときに関数を呼び出したいと思います。
私はこのことを自動的に行うことを望んでいるので、私はいつも関数を呼び出す必要はありません。スクリプト終了時の呼び出し関数

これは可能ですか?

答えて

1

このことができますかどうかは知りませんが、それを他の方法で回避を行うことができます。

は次のように関数を定義:

その後
function terminate() // you might want to have parameters here to handle different cases 
{ 
    the_function_to_call(); 
    die(); // or exit(); 
} 

あなたのコードの呼び出しterminate()の代わりに、die()exit()内。

4

クラスの__destruct()マジックメソッドは、クラスオブジェクトを最初に設定解除しない限り、シャットダウン時にも実行されます。 Scharrelsの応答は、通常の関数を登録したいだけの方が簡単です。 http://docs.php.net/manual/en/language.oop5.decon.php#language.oop5.decon.destructor

シャットダウン時にスクリプトを実行する際には、出力がブラウザに送信された後に起こりますので、スクリーンに表示されるエラーは発生しません。シャットダウン機能のためにエラーをファイルに記録することを忘れないでください!

+0

私はオブジェクトを破壊するための__destruct()について知っていますが、これは私を助けません。私はセッション操作のためのクラスを持っています。オブジェクトに__destruct()を使用したくない理由は、セッションデータを最後に適切に保存し、スクリプト処理中にセッションオブジェクトを破棄できるためです。とにかくありがとう;) – usoban

+3

これはセッションデータ管理用の場合は、session_set_save_handler()を参照してください。シャットダウン時にセッションデータを保存するための独自のシステム、書き込みハンドラがあります。 http://php.net/manual/en/function.session-set-save-handler.phpを参照してください。 – simonrjones

関連する問題