【问题标题】:Does die() end your session in PHP?die() 会在 PHP 中结束您的会话吗?
【发布时间】:2013-02-14 07:46:53
【问题描述】:

如果我执行:

die();

会不会也有效调用

session_write_close();

因为 die 停止了整个过程?

【问题讨论】:

  • 是的,就像任何脚本终止一样。对象析构函数也将运行;虽然我不确定任何 auto_append_file
  • 没有会话不会结束。死();只停止脚本的执行。

标签: php


【解决方案1】:

没有。在 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

【讨论】:

    【解决方案2】:

    dieexit 是等价的。来自文档:

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

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

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

    注意:如果您注册了自定义关闭函数,它也会在发生致命错误时被调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 2013-09-13
      • 2017-07-18
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多