什么是取消或破坏特定会话的正确方法?

时间:2013-08-30 05:41:00

标签: php session

我有这样的会话:$_SESSION['mycatalogue']['user']

当我取消设置时,我这样做:unset($_SESSION['mycatalogue'])

我想知道的是,以下所有内容都是为了做同样的事情: unset($_SESSION['mycatalogue'])

unset($_SESSION['mycatalogue']['user'])

$_SESSION['mycatalogue']['user'] = ""

因此,当我取消设置会话或为其分配NULL时,它仍将数组保留在内存中?

2 个答案:

答案 0 :(得分:0)

首先,您需要明确会话概念。您的会话是$_SESSION['mycatalogue']['user']是会话名称中的索引mycatalogue

如果您想从会话中取消设置特定索引,请使用类似

 unset($_SESSION['mycatalogue']['user'])

与取消设置数组的索引相同。

 $_SESSION['mycatalogue']['user'] = ""

不会在会话中取消设置索引user。它只会将其设置为空。

unset($_SESSION['mycatalogue'])

将取消设置为mycatalogue的所有会话。

session_destroy将取消设置与当前会话相关的所有数据,但不会取消设置任何全局变量

答案 1 :(得分:-1)

Unset将销毁特定的会话变量,而session_destroy()将销毁该用户的所有会话数据。

这取决于你的应用程序,你应该使用哪一个。请记住以上内容。

unset($_SESSION['name']); // will delete just the name data

session_destroy(); // will delete ALL data associated with that user.