PHP中的SESSION的删除为什么要有$_SESSION=array()

看删除SESSION的步骤,是这样的:①session_start()②$_SESSION=array()③session_destroy()SESSION不是保存在服务... 看删除SESSION的步骤,是这样的:
①session_start()
②$_SESSION=array()
③session_destroy()
SESSION不是保存在服务器上的以SESSION ID命名的文本文件中吗? 那么直接用第三步删除文件不就可以了,第二步的重置数组有什么用?
展开
 我来答
183525594
推荐于2018-04-12 · TA获得超过2922个赞
知道大有可为答主
回答量:3664
采纳率:58%
帮助的人:2065万
展开全部

session_destroy() 销毁当前会话中的全部数据, 但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。


上面一段是PHP手册中的内容


我来总结一下的话,就是你执行session_destroy()不会重置当前会话中的SESSION内容


所以需要用第二部对当前会话进行SESSION重置


否则,你在session_destroy之后还是能够取得SESSION数据的


当然,根据手册,上面还少了一步如下:

if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式