我有一个这样的会话:$_SESSION['mycatalogue']['user']
当我取消设置时,我会执行以下操作:unset($_SESSION['mycatalogue'])
我想知道的是,以下所有内容是否都是为了做同样的事情:unset($_SESSION['mycatalogue'])
unset($_SESSION['mycatalogue']['user'])
$_SESSION['mycatalogue']['user'] = ""
所以,当我取消设置会话或为其分配NULL时,它仍然将数组保留在内存中?
首先需要了解会话概念。您的会话是本$_SESSION['mycatalogue']
。['user']
是会话名称中作为mycatalogue
的索引。
如果你想从你的会话中取消设置特定的索引,那么像一样使用
unset($_SESSION['mycatalogue']['user'])
这和您取消设置数组的索引是一样的。
$_SESSION['mycatalogue']['user'] = ""
不会在会话中取消设置索引user
。它只会将其设置为空。
unset($_SESSION['mycatalogue'])
将取消设置名为mycatalogue
的所有会话。
session_destroy将取消设置与当前会话相关的所有数据,但不会取消设置任何全局变量
Unset将销毁特定的会话变量,而session_destroy()将销毁该用户的所有会话数据。
这实际上取决于你的应用程序,你应该使用哪一个。请记住以上内容。
unset($_SESSION['name']); // will delete just the name data
session_destroy(); // will delete ALL data associated with that user.