session_unset()和session_destroy()用法分析

關於session_unset()和session_destroy()的函數使用進行介紹。php

session_unset()
釋放當前在內存中已經建立的全部$_SESSION變量,但不刪除session文件以及不釋放對應的session
id數組

session_destroy()
刪除當前用戶對應的session文件以及釋放session
id,內存中的$_SESSION變量內容依然保留服務器

if (session_destroy())
        {
            ShowMsg("註銷成功!",'/member/login');
            exit();
        }
        else
        {
            unset($_SESSION);
            ShowMsg("註銷成功!",'/member/login');
            exit();
        }session


所以,釋放用戶的session全部資源,須要順序執行以下代碼:
程序代碼函數

php教程
$_SESSION['user'] =
'lowell';
session_unset();
session_destroy();
?>

另外一個網友分析spa

session_unregister是註銷一個session變量;
session_destroy是註銷全部的session變量,而且結束session會話;
session_unset()並不註銷session變量,但把全部的session變量的值清空.orm

那麼通常在作退出的操做時能夠這樣作:教程

session_start();
session_unset();
session_destroy();
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();

相關文章
相關標籤/搜索