这似乎是一个显而易见的问题,但我自己无法找到答案。
在注销脚本中,您会看到许多不同的销毁会话的方法。有时它们甚至可以一起使用。
为什么我要在另一种方法之上使用一种方法?
// One
session_unset();
// Two
session_destroy();
// Three
$_SESSION = array();
我知道这些功能的作用以及它们的用途。我不明白的是,如果他们做同样的事情,有多种方法。我问这个问题是为了更好地了解这个问题。
答案 0 :(得分:2)
他们不做同样的事情。 会话取消设置将清除$ _SESSION变量;
session_unset();
session_destroy()会销毁与当前会话关联的所有数据。它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie。要再次使用会话变量,必须调用session_start()。
PHP手册指定session_destroy不会取消设置变量。
仅对不使用$ _SESSION的旧版弃用代码使用session_unset()。
Unset主要用于定位特定会话,其中destroy会锁定所有会话。