以正确的方式销毁会话

时间:2016-07-11 07:20:15

标签: php session

这似乎是一个显而易见的问题,但我自己无法找到答案。

在注销脚本中,您会看到许多不同的销毁会话的方法。有时它们甚至可以一起使用。

为什么我要在另一种方法之上使用一种方法?

// One
session_unset();

// Two
session_destroy();

// Three
$_SESSION = array();

我知道这些功能的作用以及它们的用途。我不明白的是,如果他们做同样的事情,有多种方法。我问这个问题是为了更好地了解这个问题。

1 个答案:

答案 0 :(得分:2)

他们不做同样的事情。 会话取消设置将清除$ _SESSION变量;

session_unset();
  

session_destroy()会销毁与当前会话关联的所有数据。它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie。要再次使用会话变量,必须调用session_start()。

PHP手册指定session_destroy不会取消设置变量。

  

仅对不使用$ _SESSION的旧版弃用代码使用session_unset()。

Unset主要用于定位特定会话,其中destroy会锁定所有会话。