为了账号安全,请及时绑定邮箱和手机立即绑定

(PHP)为什么我用了,session_destroy(); 这句话没有什么效果?

(PHP)为什么我用了,session_destroy(); 这句话没有什么效果?

慕斯王 2019-02-06 10:07:31
(PHP)为什么我用了,session_destroy(); 这句话没有什么效果
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

你要搞清楚 session 和 $_SESSION的关系。
session 是一个会话,在session_start() 的时候建立。
$_SESSION 是一个全局数组,和其他的全局数组没有任何区别。只是php在创建一个会话的时候,会顺便创建一个全局数组来保存会话的内容,这个数组又刚好叫$_SESSION,和我们自己去创建的其他数组没有什么不一样。
session_start() 执行的时候,开启了会话,首先是如果该会话没有被创建,则在系统的tmp目录中创建了session文件(默认,可自定义),并且在当前会话的执行脚本创建全局数组$_SESSION,h这时的$_SESSION是一个空数组。如果会话存在,则读取session文件中的内容,建立$_SESSION数组。
session_destroy() ,手册中明确的说道:destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called.
不会删除 session 的全局变量和 session相关cookie,只是结束了这次会话。作为一个普普通通的全局变量,如果我们不需要乐得话,就将他 unset() 掉。如果想再次开启会话,就需要再一次session_start(),但是session_start() 重新建立会话,会重新初始化$_SESSION数组,session_start()之后$_SESSION 就又是一个空数组了。

查看完整回答
反对 回复 2019-03-16
?
HUH函数

TA贡献1836条经验 获得超4个赞

unset($_SESSION['views']);经常用到没问题的.
试试session_unset();释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id
session_destroy() ;删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留

查看完整回答
反对 回复 2019-03-16
  • 2 回答
  • 0 关注
  • 840 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信