如何取消设置 PHP 中作为数组的 _SESSION 变量
Posted
技术标签:
【中文标题】如何取消设置 PHP 中作为数组的 _SESSION 变量【英文标题】:How to unset a _SESSION Variable that is an Array in PHP 【发布时间】:2012-04-08 09:20:45 【问题描述】:我有一个实际上是一个数组的会话变量。我想删除整个数组变量,但无法实现。
_SESSION VAR
$_SESSION['auth']['id']
$_SESSION['auth']['username']
$_SESSION['auth']['role']
我尝试了unset($_SESSION['auth'])
,但它不起作用。我是否需要使用 unset() 单独取消设置每个 2 级数组?
谢谢。
【问题讨论】:
unset()
确实有效。您的问题一定出在其他地方。
就像 Brad 所说,未设置 必须 起作用。您是否尝试将 $_SESSION['auth']
设置为 null ?
好吧,完全是我的错。长话短说...我构建了一个例程,可以从持久性 cookie 中自动加载会话变量。在我注销期间,我试图删除 cookie,但失败了。随后,我的 _SESSION 变量被我的后端脚本重建——所以它在那里工作。 unset() 实际上也在工作。它只是没有有效地删除 cookie。很抱歉给您带来麻烦和愚蠢的问题。但是感谢大家的参与。
【参考方案1】:
也许你以前没有session_start()
?
【讨论】:
【参考方案2】:unset 应该可以正常工作:S 正如 Artjom Kurapov 也指出的那样,它可能是由于会话未启动所致。
但无论如何,你有没有尝试过这样做
$_SESSION['auth'] = array();
或者,如果您根本不关心会话,您可以使用 session_unset
或 session_destroy
【讨论】:
我认为您的意思是在此处使用单个“=”。否则你只是在比较它。 哈哈,哈哈,完全错过了 ^^ 猜猜这是我试图给出快速答案的惩罚:P。但是感谢指出@showerhead,它现在被编辑为正确的东西。以上是关于如何取消设置 PHP 中作为数组的 _SESSION 变量的主要内容,如果未能解决你的问题,请参考以下文章