php會(huì)話控制之PHP中使用session
了解了session的原理後,我們來(lái)學(xué)習(xí)如何在PHP中使用session。
1.開(kāi)啟session
首先我們要開(kāi)啟session,那麼第一個(gè)要學(xué)習(xí)的函數(shù)就是
bool session_start()了,這個(gè)函數(shù)沒(méi)有參數(shù)。在php檔案的開(kāi)始使用
session_start();
就可以啟用新會(huì)話或重複使用現(xiàn)有會(huì)話了。
2.新增session資料
開(kāi)啟會(huì)話之後,那麼在接下來(lái)的處理中,我們就可以使用$_SESSION變數(shù)來(lái)存取資訊了。我們要知道的是$_SESSION變數(shù)是個(gè)陣列。當(dāng)我們要把資訊存入session的時(shí)候應(yīng)該這麼寫(xiě):
$_SESSION['userName'] = 'wang';
3.讀取session資料
讀取很簡(jiǎn)單,就像我們使用陣列一樣,如下:
$userName = $_SESSION['userName'];
當(dāng)然也可以$_SESSION['userName'] 來(lái)用。和數(shù)組一樣的使用。
4.銷毀session資料
我們可以使用很多種方式來(lái)銷毀session資料。
a) unset函數(shù)
我們透過(guò)使用類似
unset($_SESSION['XXX']);
來(lái)銷毀session中的 XXX 變數(shù)。 PS:請(qǐng)不要!請(qǐng)不要!請(qǐng)不要unset($_SESSION),會(huì)導(dǎo)致後續(xù)無(wú)法使用$_SESSION這個(gè)變數(shù)! ! !
b) 空數(shù)組賦值給session變數(shù)
$_SESSION = array();
之前我們說(shuō)過(guò)$_SESSOIN變數(shù)是個(gè)數(shù)組,那麼空數(shù)組賦值的話也是相當(dāng)於將目前會(huì)話的$_SESSION變數(shù)中的值銷毀。
c) session_destory() 函數(shù)
這個(gè)函數(shù)會(huì)銷毀目前會(huì)話中的全部數(shù)據(jù),並結(jié)束目前會(huì)話。但不會(huì)重置目前會(huì)話所關(guān)聯(lián)的全域變量, 也不會(huì)重置會(huì)話 cookie。
5.session的擴(kuò)充:預(yù)設(shè)session儲(chǔ)存在哪裡。
在php.ini設(shè)定檔中有這麼一行 session.save_handler = files,?
files,說(shuō)明了php預(yù)設(shè)的是用檔案讀寫(xiě)的方式來(lái)保存session的。那麼在哪個(gè)目錄呢?繼續(xù)看。 session.save_path = "/tmp",
這一行前面有 ; ,表示是註解的,不過(guò)即便這樣,php預(yù)設(shè)的
session 也是保存在這裡的,/tmp目錄。上圖:
?從圖中我們可以看到確實(shí)在這個(gè)目錄下面,我們順便看看裡面的內(nèi)容
?我的寫(xiě)入session的語(yǔ)句是:
$_SESSION['as'] = 'as';
解讀一下,第一個(gè)as代表的是$_SESSION['as']中的as,|後面的s表示的是這是一個(gè)字串類型的數(shù)據(jù),2表示的是這個(gè)字串所佔(zhàn)的位元組數(shù),最後雙引號(hào)引起來(lái)的是值as。