Gdybym wykonać:Czy die() kończy sesję w PHP?
die();
Będzie to również skutecznie wywołać
session_write_close();
Ponieważ matryca zatrzymuje cały proces?
Gdybym wykonać:Czy die() kończy sesję w PHP?
die();
Będzie to również skutecznie wywołać
session_write_close();
Ponieważ matryca zatrzymuje cały proces?
No. Jak widać na stronie PHP: http://www.php.net/manual/en/function.exit.php (bo umrzeć jest równoważna zjazdu)
funkcji wyłączania i destruktory obiektów zawsze będą wykonywane nawet jeśli wyjście jest tzw.
ALE, session_write_close NIE jest funkcją wyłączania. Nie będzie działać, jeśli "umrzesz". Proponuję zapoznać się z session_register_shutdown. Spowoduje to zarejestrowanie session_write_close() jako funkcji wyłączania, w takim przypadku uruchomi się na "die".
Więcej informacji: http://www.php.net/manual/en/function.session-register-shutdown.php
die
i exit
są równoważne. Od dokumentów:
Kończy wykonywanie skryptu. Funkcje wyłączania i destruktory obiektów będą zawsze wykonywane nawet po wywołaniu wyjścia.
Więc php nadal będzie postępować zgodnie z procedurą czyszczenia. W każdym razie, jeśli chcesz zrobić coś niestandardowego po wyłączeniu skryptu, możesz zarejestrować funkcję wyłączania przy użyciu register_shutdown_function
.
function shutdown()
{
//Some custom clean-up, logging and so on
}
register_shutdown_function('shutdown');
Uwaga: jeśli zarejestrować swoją funkcję zwyczaj zamykania zostanie on również nazywany gdy wystąpi błąd krytyczny.
Tak to będzie ten sam sposób dowolny zakończenie skrypt będzie. Destruktory obiektów również będą działać; chociaż nie mam pewności co do pliku auto_append_file –
żadna sesja się nie zakończy. umierać(); tylko zatrzymuje wykonywanie skryptu. – ripa