在 PHP 開發中,有時需要將多個相關的資料結構化存儲在 Cookie 中。PHP 原生支援透過方括號語法建立陣列型態的 Cookie,這篇文章將詳細說明如何建立、讀取與銷毀 Cookie 陣列。
使用 setcookie() 函數時,在 Cookie 名稱中使用方括號 [key] 即可建立陣列結構:
setcookie("ICNet[Reg]", "This is reg cookie", time() + 3600);
setcookie("ICNet[Active]", "This is login cookie.", time() + 3600);
print_r($_COOKIE);
執行結果將顯示結構化的陣列:
Array (
[ICNet] => Array (
[Reg] => This is reg cookie
[Active] => This is login cookie
)
[PHPSESSID] => nsi2q5upuvqrik6notaohjd7p3
)
讀取時同樣使用陣列語法,也可以先指派給變數再存取:
// 直接存取
echo $_COOKIE['ICNet']['Reg'];
echo $_COOKIE['ICNet']['Active'];
// 或指派給變數
$arr_cookie = $_COOKIE['ICNet'];
echo $arr_cookie['Reg'];
echo $arr_cookie['Active'];
將過期時間設為過去時間點即可刪除:
setcookie('ICNet[Reg]', '', time() - 3600);
setcookie('ICNet[Active]', '', time() - 3600);