session_unset()是否已弃用?

问题描述 投票:7回答:2

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

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

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

php session
2个回答
3
投票

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

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

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

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


1
投票

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

session_destroy();

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

$_SESSION = array();

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

unset($_SESSION['example']);
© www.soinside.com 2019 - 2024. All rights reserved.