1

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

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

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

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

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

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

4

2 回答 2

0

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

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

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

它与您取消设置数组的索引一样。

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

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

unset($_SESSION['mycatalogue'])

将取消设置名为mycatalogue.

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

于 2013-08-30T05:54:18.040 回答
-1

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

这真的取决于你的应用程序,你应该使用哪一个。只要记住以上几点。

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

session_destroy(); // will delete ALL data associated with that user.
于 2013-08-30T05:45:00.923 回答