[英]Is it legal for a cookie value to be an array?
我一直认为cookie可能只包含字符串,但是PHP处理cookie的方式也可以将数组存储在cookie中(我不是在谈论序列化数组,而是本地数组)。 您需要做的就是:
setcookie('a[1]', 'a');
setcookie('a[2]', 'b');
var_dump($_COOKIE);
上面将产生以下结果(记住要执行两次):
array(1) {
["a"]=>
array(2) {
[1]=>
string(1) "a"
[2]=>
string(1) "b"
}
}
这里发生了什么? 显然,我们设法将数组存储到cookie中,该cookie应该仅包含字符串。 这是错误吗?
这当然不是错误。 事实上,它已记录在PHP文档中
您还可以通过在cookie名称中使用数组符号来设置数组cookie。 这样可以设置与数组元素一样多的cookie,但是当脚本接收到cookie时,所有值都将以cookie的名称放置在数组中:
Cookie值只能是字符串。
当PHP将cookie解析为$_COOKIE
,某些命名约定(即,名称以[]
或[something]
结尾的cookie)将导致其将它们表示为数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.