PHP中的session_unset()和session_destroy()有什么区别?

从php.net文档中:


session_destroy —销毁注册到会话的所有数据


session_unset —释放所有会话变量


我的三部分问题是:


这两个功能看起来非常相似。

两者之间的真正区别是什么?


两者似乎都删除了注册到会话的所有变量。它们中的任何一个是否实际上破坏了会话本身?如果不是,您如何完成此任务(销毁会话本身)。


这两个函数都没有删除客户端的会话cookie是否正确?


aluckdog
浏览 585回答 3
3回答

月关宝盒

session_unset只是清除$_SESSION变量。等效于:$_SESSION = array();因此,这只会影响局部$_SESSION变量实例,而不会影响会话存储中的会话数据。与此相反,session_destroy销毁存储在会话存储器中的会话数据(例如文件系统中的会话文件)。其他所有内容保持不变。

哈士奇WWW

session_destroy(); 正在删除整个会话。session_unset();仅从会话中删除变量-会话仍然存在。仅数据被截断。

江户川乱折腾

session_unset();只需清除所有会话变量的所有数据即可。session_destroy();删除所有会话。范例:session_start();session_destroy();     $a = "1234";$_SESSION[a] = $a;$_SESSION[a]是NULL。session_start();session_unset();     $a = "1234";$_SESSION[a] = $a;$_SESSION[a]是1234。因此,我将使用:session_start();session_destroy();   session_start();  $a = "1234";$_SESSION[a] = $a;
打开App,查看更多内容
随时随地看视频慕课网APP