나는 항상 쿠키가 문자열만을 보유 할 수 있다고 가정하지만, PHP가 쿠키를 처리하는 방식으로 쿠키를 배열에 저장할 수도 있습니다. (그리고 직렬 배열, 원시 배열에 대해서도 말하지는 않습니다).쿠키 값이 배열이 될 수 있습니까?
setcookie('a[1]', 'a');
setcookie('a[2]', 'b');
var_dump($_COOKIE);
위의 생산됩니다 (두 번을 실행하기 위해 기억) 다음 : 당신이해야 할 모든이가
array(1) {
["a"]=>
array(2) {
[1]=>
string(1) "a"
[2]=>
string(1) "b"
}
}
여기 무슨 일이야? 분명히 우리는 문자열을 유지하기로되어있는 쿠키에 배열을 저장할 수있었습니다. 이거 버그 야?
필자는 그렇게 생각하지 않지만 php의'serialize'와'unserialize' 함수를 사용하여 배열을 문자열로 저장하고 배열로 다시 읽어 들일 수 있습니다. – x4rf41
그리고 브라우저에서 쿠키는 어떻게 생겼을까요? 직렬화 된 배열을 보게 될 것입니다. –
[문서에서] (http://php.net/manual/en/function.setcookie.php) _ 쿠키 이름에 배열 표기법을 사용하여 배열 쿠키를 설정할 수도 있습니다. 이것은 배열 요소를 가진만큼 많은 쿠키를 설정하는 효과가 있지만, 스크립트에 의해 쿠키가 수신되면, 그 값은 모두 쿠키의 이름을 가진 배열에 위치하게됩니다 : _ –