辦案筆記 | 偵探編號 06
$_SESSION 的實體規格
接續 03 後端核心動作鑑識 登入後要「記住身分」的場景。$_SESSION 在 PHP 底層的真面目,是一個超全域變數陣列(Superglobal Array)。
核心規格:兩大鐵律
-
鐵律一、它是「跨網頁」的陣列
變數類型 生命週期 下一頁 前提 一般變數 $result網頁一執行完,變數在記憶體裡當場死掉 B、C 網頁完全讀不到 無(該頁用完即丟) Session 陣列 $_SESSION資料鎖在伺服器後端;跨網頁仍保留 A 塞進去的格子,到 B、C 可一字不差讀出 瀏覽器未關閉 Session(同一組連線身分) -
鐵律二、必須由
session_start()啟用它是內建的系統陣列,但必須在檔案的最頂端執行
session_start();函數,程式才會去硬碟把屬於這台瀏覽器的陣列資料載入進來。
語法真面目對齊
它本質上就是個陣列,所以你對它做的所有事情,都是標準的陣列操作:
PHP
$_SESSION['login'] = 1;
// 在這個跨網頁的陣列中,建立一個叫做 'login' 的字串鑰匙,並把數值 1 塞進這個格子裡。
一秒區分結論
一般 $變數 隨頁面結束而消失;$_SESSION 跨頁存活,但每支檔案開頭要先 session_start(); 才讀得到、寫得進。