我有这样的会话:$_SESSION['mycatalogue']['user']
当我取消设置时,我这样做:unset($_SESSION['mycatalogue'])
我想知道的是,以下所有内容都是为了做同样的事情:
unset($_SESSION['mycatalogue'])
unset($_SESSION['mycatalogue']['user'])
$_SESSION['mycatalogue']['user'] = ""
因此,当我取消设置会话或为其分配NULL时,它仍将数组保留在内存中?
答案 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.