PHP 里面session_unset()函数与session_destroy()函数比较

本文详细对比了PHP中session_unset()和session_destroy()两个函数的区别。session_unset()用于释放已创建的所有$_SESSION变量,但保留session文件及sessionid;而session_destroy()则删除用户的session文件并释放sessionid,保留$_SESSION变量内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 **session_unset()**:释放当前在内存中已经创建的所有$_SESSION变量,但是不删除session文件以及不释放对应的session id;
 **session_destroy()**:删除当前用户对应的session文件以及释放session id,内存中$_SESSION变量内容依然保留;
 下面是一个对比:
<?php 
    //session_start();必须位于<html>标签之前
    session_start();
    $_SESSION['view']=3;
?> 
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here
        echo 'session的id为:'.session_id().'<br>';   
        if(session_destroy()){
            echo "清除成功!"."<br>";
            echo 'session的id为:'.session_id().'<br>';
            echo 'Views1 = '.$_SESSION['view'].'<br>';
                        unset($_SESSION);
            echo 'Views2 = '.$_SESSION['view'];
        }
        else{
            unset($_SESSION);
            echo 'Views2 = '.$_SESSION['view'];
        }

        ?>
    </body>
</html>

输出结果为:

session的id为:rj8807cckpsnafo4mt6kp4obp5
清除成功!
session的id为:
Views1 = 3
Views2 =
    通过输出结果可以看到调用session_destroy()函数,session的id被清空,但是$_SESSION里面的变量值还是存在的,然而调用session_unset()函数之后就取不到之前存放的变量值了;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值