die()会以PHP结束你的会话吗?

时间:2013-02-14 07:46:54

标签: php

如果我执行:

die();

它是否也会有效地调用

session_write_close();

因为模具会停止整个过程吗?

2 个答案:

答案 0 :(得分:13)

没有。正如您在PHP页面上看到的那样:http://www.php.net/manual/en/function.exit.php(因为 die 等同于退出

  

将始终执行关闭功能和对象析构函数   即使退出被召唤。

但是,session_write_close不是关机功能。如果你“死”,它就不会运行。我建议您查看 session_register_shutdown 。这会将session_write_close()注册为关闭函数,在这种情况下,它将在“die”上运行。

更多信息:http://www.php.net/manual/en/function.session-register-shutdown.php

答案 1 :(得分:7)

dieexit相同。来自文档:

  

终止脚本的执行。即使调用exit,也将始终执行关闭函数和对象析构函数。

所以php仍然会进行清理程序。无论如何,如果你想在脚本关闭时做一些自定义的事情,你可以使用register_shutdown_function注册关闭功能。

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

register_shutdown_function('shutdown');

注意:如果您注册自定义关闭功能,当致命错误发生时也会调用它。