session_unset()是否已弃用?

时间:2014-07-29 13:37:55

标签: php session

session_unset()的PHP文档中,没有提示不推荐使用此函数,所以我认为使用它是没问题的。但后来我阅读了有关session_destroy()的文档,我发现了这个提示:

  

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

我知道session_unset()函数是$_SESSION = array();的等价函数。那我现在该怎么用?为什么在一个站点上提示不推荐使用此函数,另一方面在关于函数本身的文档中没有弃用的注释。现在关于这个功能的真相是什么?

2 个答案:

答案 0 :(得分:3)

我也不知道确切的原因,但我可以在这里找到:https://github.com/php/php-src/blob/master/ext/session/session.c

PHP处理ZVAL指针中的变量,我认为他们只是希望_SESSION超全局的处理方式与其他任何变量相同,而不是使用“特殊”命令session_unset()

我认为另一个好处是更好的垃圾收集处理。

有时候,“弃用”并不意味着它是一个糟糕的功能,但你不应该使用它,因为代码可能会在未来的软件包中删除,因为它不是必需的。

答案 1 :(得分:1)

如果要关闭会话,则必须使用session_destroy()

session_destroy();

如果要清除会话的变量,必须使用:

$_SESSION = array();

如果您只想清除会话中的一个变量,则必须使用:

unset($_SESSION['example']);