php - 为什么session_destroy之后执行session_unset无效
迷茫
迷茫 2017-04-11 09:16:32
0
1
369

session_start();
$_SESSION['age']=189;
如果是
session_unset();
session_destroy();
var_dump($_SESSION);
这样结果为空

而如果是这样:
session_destroy();
session_unset();
本页面的session变量依然健在

求解,谢谢诸位

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

reply all(1)
PHPzhong

这个问题真的很有意思

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['age'] =189;
session_unset();
session_destroy();

第一个方法原理是 :
先清空了变量的值
释放内存中的变量
session 被注销了

第二个方法是

先注销了
再删除
但是内存中变量和值是存在的

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!