die()
またはexit()
でスクリプトが終了したときに関数を呼び出したいと思います。
私はこのことを自動的に行うことを望んでいるので、私はいつも関数を呼び出す必要はありません。スクリプト終了時の呼び出し関数
これは可能ですか?
die()
またはexit()
でスクリプトが終了したときに関数を呼び出したいと思います。
私はこのことを自動的に行うことを望んでいるので、私はいつも関数を呼び出す必要はありません。スクリプト終了時の呼び出し関数
これは可能ですか?
使用register_shutdown_function()
:
http://docs.php.net/manual/en/function.register-shutdown-function.php
このことができますかどうかは知りませんが、それを他の方法で回避を行うことができます。
は次のように関数を定義:
その後function terminate() // you might want to have parameters here to handle different cases
{
the_function_to_call();
die(); // or exit();
}
あなたのコードの呼び出しterminate()
の代わりに、die()
かexit()
内。
クラスの__destruct()マジックメソッドは、クラスオブジェクトを最初に設定解除しない限り、シャットダウン時にも実行されます。 Scharrelsの応答は、通常の関数を登録したいだけの方が簡単です。 http://docs.php.net/manual/en/language.oop5.decon.php#language.oop5.decon.destructor
シャットダウン時にスクリプトを実行する際には、出力がブラウザに送信された後に起こりますので、スクリーンに表示されるエラーは発生しません。シャットダウン機能のためにエラーをファイルに記録することを忘れないでください!
私はオブジェクトを破壊するための__destruct()について知っていますが、これは私を助けません。私はセッション操作のためのクラスを持っています。オブジェクトに__destruct()を使用したくない理由は、セッションデータを最後に適切に保存し、スクリプト処理中にセッションオブジェクトを破棄できるためです。とにかくありがとう;) – usoban
これはセッションデータ管理用の場合は、session_set_save_handler()を参照してください。シャットダウン時にセッションデータを保存するための独自のシステム、書き込みハンドラがあります。 http://php.net/manual/en/function.session-set-save-handler.phpを参照してください。 – simonrjones
ありがとう、googleで何も見つかりませんでしたが、実際には関数だとは思いませんでした;) – usoban
PHPドキュメントのexit()関数がそれにリンクしています。 PHPのドキュメントは、この種の質問を探すための最良のスタートです。 – Scharrels