2013-02-14 12 views
9

は、私が実行した場合:ダイは全体のプロセスを停止しているためdie()はPHPでセッションを終了しますか?

die(); 

それはまた、効果的

session_write_close(); 

を呼ぶだろうか?

+3

はい、スクリプト終了と同じ方法です。オブジェクトデストラクタも実行されます。私はauto_append_fileについてはっきりしていませんが、 –

+1

セッションは終了しません。死ぬ();スクリプトの実行を停止するだけです。 – ripa

答えて

11

番号:http://www.php.net/manual/en/function.exit.php常に出口が呼び出された場合でも 実行されます

シャットダウン機能やオブジェクトのデストラクタ(ためにはダイは終了に相当します)。

ただし、session_write_closeはシャットダウン機能ではありません。あなたが死んでもそれは走りません。私はあなたにsession_register_shutdownを調べることをお勧めします。これにより、session_write_close()がシャットダウン関数として登録されます。この場合、 "die"で実行されます。

詳細情報:http://www.php.net/manual/en/function.session-register-shutdown.php

7

dieおよびexitは同等である。ドキュメントから:

スクリプトの実行を終了します。シャットダウン関数とオブジェクトデストラクタは、exitが呼び出されても常に実行されます。

したがって、phpはまだクリーンアップルーチンになります。とにかく、スクリプトのシャットダウン時に何かカスタムをしたい場合は、register_shutdown_functionを使ってシャットダウン機能を登録することができます。

function shutdown() 
{ 
    //Some custom clean-up, logging and so on 
} 

register_shutdown_function('shutdown'); 

注:カスタムシャットダウン機能を登録場合致命的なエラーが発生したときに、それはとも呼ばれます。あなたがPHPのページで見ることができるように

関連する問題