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

cod*_*ama 11 php

如果我执行:

die();
Run Code Online (Sandbox Code Playgroud)

它是否也会有效地召唤

session_write_close();
Run Code Online (Sandbox Code Playgroud)

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

小智 13

没有.正如您在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


Ler*_*eri 7

die并且exit是等价的.来自文档:

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

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

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

register_shutdown_function('shutdown');
Run Code Online (Sandbox Code Playgroud)

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