12

私が実行した場合:

die();

それも効果的に呼び出すか

session_write_close();

ダイがプロセス全体を停止するからですか?

4

2 に答える 2

13

いいえ。PHP ページでわかるように: http://www.php.net/manual/en/function.exit.php ( dieはexitと同等であるため)

exit が呼び出された場合でも、シャットダウン関数とオブジェクト デストラクタは常に実行されます。

しかし、session_write_close はシャットダウン機能ではありません。「死ぬ」と走りません。session_register_shutdownを調べることをお勧めします。これにより、session_write_close() がシャットダウン関数として登録され、この場合、「ダイ」で実行されます。

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

于 2013-02-14T07:56:48.500 に答える
7

dieexit同等です。ドキュメントから:

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

したがって、php は引き続きクリーンアップ ルーチンに進みます。とにかく、スクリプトのシャットダウンで何かカスタムを行いたい場合は、を使用してシャットダウン関数を登録できますregister_shutdown_function

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

register_shutdown_function('shutdown');

注:カスタム シャットダウン関数を登録すると、致命的なエラーが発生したときにも呼び出されます。

于 2013-02-14T07:53:17.980 に答える