2 回答

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
你要搞清楚 session 和 $_SESSION的關(guān)系。
session 是一個(gè)會(huì)話,在session_start() 的時(shí)候建立。
$_SESSION 是一個(gè)全局?jǐn)?shù)組,和其他的全局?jǐn)?shù)組沒有任何區(qū)別。只是php在創(chuàng)建一個(gè)會(huì)話的時(shí)候,會(huì)順便創(chuàng)建一個(gè)全局?jǐn)?shù)組來保存會(huì)話的內(nèi)容,這個(gè)數(shù)組又剛好叫$_SESSION,和我們自己去創(chuàng)建的其他數(shù)組沒有什么不一樣。
session_start() 執(zhí)行的時(shí)候,開啟了會(huì)話,首先是如果該會(huì)話沒有被創(chuàng)建,則在系統(tǒng)的tmp目錄中創(chuàng)建了session文件(默認(rèn),可自定義),并且在當(dāng)前會(huì)話的執(zhí)行腳本創(chuàng)建全局?jǐn)?shù)組$_SESSION,h這時(shí)的$_SESSION是一個(gè)空數(shù)組。如果會(huì)話存在,則讀取session文件中的內(nèi)容,建立$_SESSION數(shù)組。
session_destroy() ,手冊(cè)中明確的說道: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.
不會(huì)刪除 session 的全局變量和 session相關(guān)cookie,只是結(jié)束了這次會(huì)話。作為一個(gè)普普通通的全局變量,如果我們不需要樂得話,就將他 unset() 掉。如果想再次開啟會(huì)話,就需要再一次session_start(),但是session_start() 重新建立會(huì)話,會(huì)重新初始化$_SESSION數(shù)組,session_start()之后$_SESSION 就又是一個(gè)空數(shù)組了。

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