rockstardev
rockstardev

Reputation: 13537

Does die() end your session in PHP?

If I execute:

die();

Will it also effectively call

session_write_close();

Because die stops the entire process?

Upvotes: 12

Views: 4577

Answers (2)

Sites Done Right
Sites Done Right

Reputation: 652

No. As you can see on the PHP page: http://www.php.net/manual/en/function.exit.php (because die is equivalent to exit)

Shutdown functions and object destructors will always be executed even if exit is called.

BUT, session_write_close is NOT a shutdown function. It will not run if you "die". I suggest you look into session_register_shutdown. This will register session_write_close() as a shutdown function and in this case, it will run on "die".

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

Upvotes: 13

Leri
Leri

Reputation: 12535

die and exit are equivalent. From the docs:

Terminates execution of the script. Shutdown functions and object destructors will always be executed even if exit is called.

So php will still go clean-up routine. Anyway, if you want to do something custom on script shutdown you can register shutdown function using register_shutdown_function.

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

register_shutdown_function('shutdown');

Note: if you register your custom shutdown function it will also be called when fatal error occurs.

Upvotes: 7

Related Questions