session_start();
$_SESSION['age']=189;
如果是
session_unset();
session_destroy();
var_dump($_SESSION);
这样结果为空
而如果是这样:
session_destroy();
session_unset();
本页面的session变量依然健在
求解,谢谢诸位
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个问题真的很有意思
session_destroy 是注销所有的session变量,并且结束session会话目前是删除当前用户对应的session文件以及释放session id值 ,
但是但是 内存中的$_SESSION变量内容依然保留
session_unset() 并不注销session变量,但把所有的session变量的值清空.所以var_dump($_SESSION);时间看到的是空的哈。(因为你第一次清空了session然后有注销了所有的变量。)
session_unset()删除当前所有的session值,作用等于和 session_destroy()是一摸一样的哈;
但是 但是 释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应session id 和值 !
一般正常情况下释放session的顺序是你的第一个方法
第一个方法原理是 :
先清空了变量的值
释放内存中的变量
session 被注销了
第二个方法是
先注销了
再删除
但是内存中变量和值是存在的