2013-02-14 4 views
9

Wenn ich ausführen:Beendet die() die Sitzung in PHP?

die(); 

Wird es effektiv

session_write_close(); 

nennen auch Weil sterben den gesamten Prozess nicht mehr reagiert?

+3

Ja, es wird die gleiche Art und Weise jedes Skript Kündigung wird. Objektdestruktoren werden ebenfalls ausgeführt. obwohl ich bin nicht sicher über eine auto_append_file –

+1

keine Sitzung wird nicht enden. sterben(); stoppt nur die Ausführung des Skripts. – ripa

Antwort

11

Nein, wie Sie auf der PHP-Seite sehen: http://www.php.net/manual/en/function.exit.php (weil sterben entspricht Ausfahrt)

Shutdown Funktionen und Objekt Destruktoren wird immer dann ausgeführt werden, auch wenn Exit aufgerufen wird.

ABER session_write_close ist KEINE Abschaltfunktion. Es wird nicht laufen, wenn du "stirbst". Ich schlage vor, Sie schauen in session_register_shutdown. Dies wird session_write_close() als Shutdown-Funktion registrieren und in diesem Fall wird es auf "Die" laufen.

Mehr Info: http://www.php.net/manual/en/function.session-register-shutdown.php

7

die und exit sind gleichwertig. Aus der Dokumentation:

Beendet die Ausführung des Skripts. Shutdown-Funktionen und Objektdestruktoren werden immer ausgeführt, auch wenn exit aufgerufen wird.

So PHP wird immer noch aufräumen Routine. Wie auch immer, wenn Sie beim Herunterfahren des Skripts etwas Eigenes machen wollen, können Sie die Funktion shutdown mit register_shutdown_function registrieren.

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

register_shutdown_function('shutdown'); 

Hinweis: wenn Sie Ihre benutzerdefinierten Shutdown-Funktion registrieren wird es auch genannt werden, wenn fatale Fehler auftreten.

Verwandte Themen