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