【发布时间】:2013-02-14 07:46:53
【问题描述】:
如果我执行:
die();
会不会也有效调用
session_write_close();
因为 die 停止了整个过程?
【问题讨论】:
-
是的,就像任何脚本终止一样。对象析构函数也将运行;虽然我不确定任何 auto_append_file
-
没有会话不会结束。死();只停止脚本的执行。
标签: php
如果我执行:
die();
会不会也有效调用
session_write_close();
因为 die 停止了整个过程?
【问题讨论】:
标签: php
没有。在 PHP 页面上可以看到:http://www.php.net/manual/en/function.exit.php(因为 die 相当于 exit)
将始终执行关闭函数和对象析构函数 即使调用了 exit。
但是,session_write_close 不是关闭函数。如果您“死”,它将不会运行。我建议您查看 session_register_shutdown。这会将 session_write_close() 注册为关闭函数,在这种情况下,它将在“die”上运行。
更多信息:http://www.php.net/manual/en/function.session-register-shutdown.php
【讨论】:
终止脚本的执行。关闭函数和对象析构函数将始终被执行,即使 exit 被调用。
所以 php 仍然会进行清理程序。无论如何,如果你想在脚本关闭时做一些自定义的事情,你可以使用register_shutdown_function注册关闭函数。
function shutdown()
{
//Some custom clean-up, logging and so on
}
register_shutdown_function('shutdown');
注意:如果您注册了自定义关闭函数,它也会在发生致命错误时被调用。
【讨论】: