session_unset与session_destroy的区别

session_unset()

释放当前在内存中已经创建的所有$_SESSION变量,但不删除session存储文件以及不释放对应的session_id

 

示例:

<?php
            ......
            session_unset();
            echo $_SESSION["token"];   //无
            echo session_id();   //有值
            var_dump($_SESSION);  //无
            ?>

 

session_destroy()

删除当前用户对应的session存储文件以及释放session_id,内存中的$_SESSION变量内容依然保留。

 

示例:

<?php
           ......
            session_destroy();
            echo $_SESSION["token"];   //无
            echo session_id();   //无
            var_dump($_SESSION);   //例如,能看到$_SESSION["token"]这个变量的值
            ?>

 

因此:

释放用户的session所有资源,需要顺序执行如下代码:

<?php
......
$_SESSION['user'] = 'fujieace';
session_unset();
session_destroy();
?>

 

相关推荐:

PHP中的session存储在哪里?

PHP正确“彻底删除session”两种方法

付杰
  • ¥ 58.0元
  • 市场价:58.0元
  • ¥ 39.0元
  • 市场价:39.0元
  • ¥ 199.0元
  • 市场价:179.0元
  • ¥ 69.0元
  • 市场价:69.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: