今天在释放$_SESSION时,使用session_destroy()函数释放定义的变量时,在之后检查该变量发现仍然存在。
<?php
session_destroy($_SESSION);
echo $_SESSION['name'];
查了一下:
session_unset()
释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id
session_destroy()
删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留
所以在释放$_SESSION中变量时,应该:
<?php
session_unset( );
session_destroy( $_SESSION );
?>
顺便记录一下unset()
函数
unset()
- 如果在函数中unset()的一个全局变量或者一个通过引用传递的值,则其只能在局部销毁变量,在调用环境中的变量却会保持调用unset()前一样的值。
- 如果unset一个静态变量,则静态变量及其所有引用都会被销毁。
- 如果想unset一个globals变量则可以借用GLOBALS数组来销毁:
unset($GLOBALS['str']);