我刚注意到session_destroy()
似乎对我不起作用。
测试PHP代码如下所示:
session_start();
session_destroy();
$_SESSION['session'] = 'session started';
print_r($_SESSION);
但显示屏仍显示
Array ( [session] => session started)
当然SESSION变量现在不存在会引发错误吗?
答案 0 :(得分:2)
session_destroy
会破坏已保存的会话数据 - 在大多数情况下,这是会话文件。
但是,它不会影响会话变量本身。
因此,只要您处于同一请求中,就可以继续使用$_SESSION
超全局及其以前的所有值。要完全破坏它,你应该使用:
foreach(array_keys($_SESSION) as $k) unset($_SESSION[$k]);
或代码效果类似。
也就是说,这并不重要 - 会话将被销毁,通常只会在注销页面上执行此操作,这些页面只会在将用户发送回主页之前短暂显示。