网站首页学无止境PHP

关于session_unset()和session_destroy()的函数使用进行介绍

发布时间:2014-09-24 18:00:58编辑:songlin阅读(140)

    关于session_unset()和session_destroy()的函数使用进行介绍。

    session_unset()

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

    id

    session_destroy()

    删除当前用户对应的session文件以及释放session

    id,内存中的$_SESSION变量内容依然保留

    1. if (session_destroy()) 
    2.  
    3.  
    4. ShowMsg("注销成功!",'/member/login'); 
    5.  
    6. exit(); 
    7.  
    8.  
    9. else 
    10.  
    11.  
    12. unset($_SESSION); 
    13.  
    14. ShowMsg("注销成功!",'/member/login'); 
    15.  
    16. exit(); 

    }

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

    程序代码

    php教程

    1. $_SESSION['user'] ='lowell'
    2.  
    3. session_unset(); 
    4.  
    5. session_destroy(); 

    另一个网友分析

    session_unregister是注销一个session变量;

    session_destroy是注销所有的session变量,并且结束session会话;

    session_unset()并不注销session变量,但把所有的session变量的值清空.

    那么一般在做退出的操作时可以这样做:

    1. session_start(); 
    2.  
    3. session_unset(); 
    4.  
    5. session_destroy(); 
    6.  
    7. header("location:XXX.php"); 

    在php中销毁变量有很多不同的方法。如:unset();session_unset();session_destroy();但session变量作为特殊的变量,不同的销毁方式更会产生不同的结果。

    unset()在php3时其使用后会返回一个boolean值,但在php4及以后的版本,其只是一个没有返回值的语句。如果在函数中unset()的一个全局变量或者一个通过引用传递的值,则其只能在局部销毁变量,在调用环境中的变量却会保持调用unset()前一样的值。如果unset一个静态变量,则静态变量及其所有引用都会被销毁。如果想unset一个globals变量则可以借用GLOBALS数组来销毁:unset($GLOBALS['str']);

    unset($_SESSION['str'])则可以删除单个的$_SESSION['str']变量。若使用unset($_SESSION);则删除服务器上的所有SESSION文件

    session_unset()删除当前所有的session值,其结果同session_destroy();

本文来源地址:http://www.php100.com/html/php/hanshu/2013/0905/4638.html