session_unset()的用途是什么?

时间:2019-03-22 19:31:14

标签: php

就我而言,session_unset()没有隐藏功能。该行为与$_SESSION = [];相同。为什么将此功能添加到PHP 4?如果不建议使用它,为什么还不建议弃用它,使用它没有好处呢?它会以某种方式影响GC吗?

定义函数的PHP C代码:https://github.com/php/php-src/blob/master/ext/session/session.c#L2519

1 个答案:

答案 0 :(得分:3)

如果使用不赞成使用的会话变量,即$ HTTP_SESSION_VARS,这对您很重要。

Version Description
4.1.0   Introduced $_SESSION that deprecated $HTTP_SESSION_VARS.

1

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()函数没有被弃用,尽管我无法确切告诉您为什么。