註冊

辦案筆記 | 偵探編號 06

$_SESSION 的實體規格

接續 03 後端核心動作鑑識 登入後要「記住身分」的場景。$_SESSION 在 PHP 底層的真面目,是一個超全域變數陣列(Superglobal Array)。

核心規格:兩大鐵律

  1. 鐵律一、它是「跨網頁」的陣列

    變數類型 生命週期 下一頁 前提
    一般變數 $result 網頁一執行完,變數在記憶體裡當場死掉 B、C 網頁完全讀不到 無(該頁用完即丟)
    Session 陣列 $_SESSION 資料鎖在伺服器後端;跨網頁仍保留 A 塞進去的格子,到 B、C 可一字不差讀出 瀏覽器未關閉 Session(同一組連線身分)
  2. 鐵律二、必須由 session_start() 啟用

    它是內建的系統陣列,但必須在檔案的最頂端執行 session_start(); 函數,程式才會去硬碟把屬於這台瀏覽器的陣列資料載入進來。

語法真面目對齊

它本質上就是個陣列,所以你對它做的所有事情,都是標準的陣列操作:

PHP

$_SESSION['login'] = 1;
// 在這個跨網頁的陣列中,建立一個叫做 'login' 的字串鑰匙,並把數值 1 塞進這個格子裡。

一秒區分結論

一般 $變數 隨頁面結束而消失;$_SESSION 跨頁存活,但每支檔案開頭要先 session_start(); 才讀得到、寫得進。