session_start();
$_SESSION['name'] = 'Sam';
echo $_SESSION['name'];//Sam
session_destroy();
echo $_SESSION['name'];//Sam
我知道使用unset()
或$_SESSION = array()
可以取消设置$ _SESSION值,但是我仍然想知道为什么session_destroy()
不能取消设置$ _SESSION值,究竟是session_destroy()
怎么做的?
什么时候适合使用session_destroy()
?
session_destroy()
使用后需要打电话unset()
吗?
的手动输入为session_destroy
:
session_destroy()
销毁与当前会话关联的所有数据。它不会取消设置与该会话关联的任何全局变量,也不会取消设置会话cookie。
因此,session_destroy()
将销毁数据的实际存储位置(文件系统/ memcached / Redis /无论如何,取决于已配置的会话处理程序),但相同的数据仍将保留在$_SESSION
超全局变量的内存中,直到您明确取消设置它为止,或者用unset()
或$_SESSION = []
。
因此,是的,您必须session_destroy()
在使用后调用unset()
,如手册页上的示例所述session_destroy()
:https : //www.php.net/manual/en/function.session-destroy.php#refsect1-function.session-destroy -例子
最后,回答您的主要问题“为什么session_destroy无法取消设置当前会话值php”:因为这不是该函数的作用。手册说明了一切。只需仔细阅读它,您将了解会话清理的所有知识。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句