2 回答

TA貢獻1942條經(jīng)驗 獲得超3個贊
你要搞清楚 session 和 $_SESSION的關系。
session 是一個會話,在session_start() 的時候建立。
$_SESSION 是一個全局數(shù)組,和其他的全局數(shù)組沒有任何區(qū)別。只是php在創(chuàng)建一個會話的時候,會順便創(chuàng)建一個全局數(shù)組來保存會話的內容,這個數(shù)組又剛好叫$_SESSION,和我們自己去創(chuàng)建的其他數(shù)組沒有什么不一樣。
session_start() 執(zhí)行的時候,開啟了會話,首先是如果該會話沒有被創(chuàng)建,則在系統(tǒng)的tmp目錄中創(chuàng)建了session文件(默認,可自定義),并且在當前會話的執(zhí)行腳本創(chuàng)建全局數(shù)組$_SESSION,h這時的$_SESSION是一個空數(shù)組。如果會話存在,則讀取session文件中的內容,建立$_SESSION數(shù)組。
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數(shù)組,session_start()之后$_SESSION 就又是一個空數(shù)組了。

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