就我而言,session_unset()
没有隐藏功能。该行为与$_SESSION = [];
相同。为什么将此功能添加到PHP 4?如果不建议使用它,为什么还不建议弃用它,使用它没有好处呢?它会以某种方式影响GC吗?
定义函数的PHP C代码:https://github.com/php/php-src/blob/master/ext/session/session.c#L2519
答案 0 :(得分:3)
如果使用不赞成使用的会话变量,即$ HTTP_SESSION_VARS,这对您很重要。
Version Description
4.1.0 Introduced $_SESSION that deprecated $HTTP_SESSION_VARS.
session_unset()用于清除$ HTTP_SESSION_VARS包含的所有会话信息,而不破坏会话本身。但是,
(Note that $HTTP_SESSION_VARS and $_SESSION are different variables and that PHP handles them as such)
因此,当使用$ _SESSION超全局变量时,为什么session_unset()无效。我不能说令人惊讶的是,在$ HTTP_SESSION_VARS时,session_unset()函数没有被弃用,尽管我无法确切告诉您为什么。