首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP中的session_unset()和session_destroy()有什么不同?

PHP中的session_unset()和session_destroy()有什么不同?
EN

Stack Overflow用户
提问于 2010-11-29 19:33:09
回答 8查看 66.2K关注 0票数 90

php.net文档中:

-销毁注册到会话的所有数据

-释放所有会话变量

我的三部分问题是:

这两个功能看起来非常相似。

这两者到底有什么不同呢?

两者似乎都删除了注册到会话的所有变量。它们中的任何一个实际上会破坏会话本身吗?如果不是,您如何完成此操作(销毁会话本身)。

这两个函数都不会删除客户端的会话cookie,这是正确的吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-11-30 18:20:38

只清除$_SESSION变量。它等同于做:

代码语言:javascript
复制
$_SESSION = array();

因此,这只影响本地$_SESSION变量实例,而不影响会话存储中的会话数据。

相反,会销毁存储在会话存储中的会话数据(例如,文件系统中的会话文件)。

其他一切都保持不变。

票数 147
EN

Stack Overflow用户

发布于 2010-11-29 19:37:51

session_destroy();正在删除整个会话。

session_unset();仅从会话中删除变量-会话仍然存在。仅截断数据。

票数 19
EN

Stack Overflow用户

发布于 2011-07-01 09:49:31

代码语言:javascript
复制
session_unset();

只清除所有会话变量的所有数据。

代码语言:javascript
复制
session_destroy();

删除所有会话。

示例

代码语言:javascript
复制
session_start();
session_destroy();     
$a = "1234";
$_SESSION[a] = $a;

$_SESSION[a] is NULL

代码语言:javascript
复制
session_start();
session_unset();     
$a = "1234";
$_SESSION[a] = $a;

$_SESSION[a] is 1234

因此,我将使用:

代码语言:javascript
复制
session_start();
session_destroy();   
session_start();  
$a = "1234";
$_SESSION[a] = $a;
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4303311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档