2 回答

TA貢獻1942條經驗 獲得超3個贊
你要搞清楚 session 和 $_SESSION的關系。
session 是一個會話,在session_start() 的時候建立。
$_SESSION 是一個全局數組,和其他的全局數組沒有任何區別。只是php在創建一個會話的時候,會順便創建一個全局數組來保存會話的內容,這個數組又剛好叫$_SESSION,和我們自己去創建的其他數組沒有什么不一樣。
session_start() 執行的時候,開啟了會話,首先是如果該會話沒有被創建,則在系統的tmp目錄中創建了session文件(默認,可自定義),并且在當前會話的執行腳本創建全局數組$_SESSION,h這時的$_SESSION是一個空數組。如果會話存在,則讀取session文件中的內容,建立$_SESSION數組。
session_destroy() ,手冊中明確的說道:destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called.
不會刪除 session 的全局變量和 session相關cookie,只是結束了這次會話。作為一個普普通通的全局變量,如果我們不需要樂得話,就將他 unset() 掉。如果想再次開啟會話,就需要再一次session_start(),但是session_start() 重新建立會話,會重新初始化$_SESSION數組,session_start()之后$_SESSION 就又是一個空數組了。

TA貢獻1836條經驗 獲得超4個贊
unset($_SESSION['views']);經常用到沒問題的.
試試session_unset();釋放當前在內存中已經創建的所有$_SESSION變量,但不刪除session文件以及不釋放對應的session id
session_destroy() ;刪除當前用戶對應的session文件以及釋放session id,內存中的$_SESSION變量內容依然保留
- 2 回答
- 0 關注
- 928 瀏覽
添加回答
舉報