最近更新: 2007-06-02

TWPUG問答 - 如何清除SESSION資料

原問題見: SESSION怎麼釋放不掉。在 PHP 中使用 Session 前,請務必閱讀: PHP Manual::Session Handling Functions

1. Session and global variable

PHP Manual::session_register: If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().

$_SESSION 已經是一個 superglobal variable (全系統域變數),使用 $_SESSION['yourKey'] 的寫法就可以了。

2. Use reference with session data

$_SESSION 打起來太長,用參照也成,效果一樣。例:

$_SESSION['xyz'] = 'xyz';
$xyz =& $_SESSION['xyz'];
$xyz = '123';
echo $_SESSION['xyz'];

但不能用 $_SESSION 儲存參照。You can't use references in session variables as there is no feasible way to restore a reference to another variable. 下例是錯誤示範:

$xyz = '123';
$_SESSION['xyz'] =& $xyz; // WARNING!
3. Clean session data

要清除一個 SESSION 狀態,直接 unset() 指定項目即可。若要清部全部資料,調用 session_destroy()。例:

unset($_SESSION['xyz']); //清除單一項目
session_destroy(); //全部清除
樂多舊網址: http://blog.roodo.com/rocksaying/archives/3387201.html

樂多舊回應
esther75952@yahoo.com.tw(she96965) (#comment-10791059)
Tue, 05 Jun 2007 10:24:26 +0800
謝謝大大~
讓我對SESSION的釋放有更深一層的了解了~
謝謝!!
未留名 (#comment-24116678)
Thu, 26 Dec 2013 14:00:42 +0800
很清楚謝謝