4

我正在尝试取消设置销毁特定会话,并且遇到了不同的方法,并且想知道哪种方法是完成这项工作的有效方法,并且也可以处理大多数 php 版本。

第一种方法:

unset($_SESSION['site1']);
session_destroy();

第二种方法:

session_unset();
session_destroy();

更新:[已解决]

<?php
session_start();

unset($_SESSION['site1']);
?>
4

3 回答 3

6

只需用于unset取消设置任何数组索引。而 Session 本身就是一个数组。所以用于unset取消设置您的特定会话索引。session_unset在和函数的情况下你错了,session_destroy因为它们不接受任何参数。

另外需要注意的是,您不应该使用session_destroy它,因为它会取消设置所有可用的会话。例如。注销时,您可能不想丢失使用会话形成的购物车中的产品。

编辑

session_destroy — Destroys all data registered to a session

session_unset — Frees all session variables

session_unset 只是清除 $_SESSION 变量。这相当于做:

$_SESSION = array(); 所以这只会影响本地 $_SESSION 变量实例,而不影响会话存储中的会话数据。

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

其他一切都保持不变。

于 2013-06-20T15:47:29.417 回答
3

session_unset不带任何参数。它释放所有会话变量。

于 2013-06-20T15:33:09.363 回答
1

一旦你调用了session_start(),你应该$_SESSION像对待任何其他对象一样对待。

正因为如此,unset会做得很好。

于 2013-06-20T15:33:38.770 回答