0

我正在尝试这样做:

setCookie('visitor', array(0 => 'one', 1 => 'two'), time()+3600, COOKIEPATH, COOKIE_DOMAIN, false);

但我无法让它工作。php 参考解释了“$value as string[optional]”(据我的理解)应该接受一个字符串数组作为参数。如果我对 php 参考( string[optional] )的理解是错误的,请帮助我实现与此类似的事情或纠正我。

这是 setcookie 函数声明:

setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);
4

2 回答 2

4

改为使用serialize(array(0 => 'one', 1 => 'two'))

unserialize()再次检索数组时使用。

不:如果 php 手册说函数需要一个字符串......那么他们的意思是一个字符串。不是字符串数组。

也许你被[可选]愚弄了?方括号没有任何意义。整个“[可选]”只是意味着可以在没有此参数的情况下调用该函数。

于 2012-05-19T13:21:06.150 回答
1

如果该setcookie()函数确实允许您重载类型,它将通过将数组传递到循环中来实现。由于它不支持数组,我会在函数外使用一个 foreach 循环。

foreach (array(0 => 'one', 1 => 'two') as $key => $value) {
    setcookie('visitor[' . $key . ']', $value, time()+3600, COOKIEPATH, COOKIE_DOMAIN, false);
)

var_dump($_COOKIE);

这导致...

array(1) {
    ["visitor"]=>
    array(2) {
        [0]=>
        string(3) "one"
        [1]=>
        string(3) "two"
    }
}
于 2012-09-26T19:32:48.950 回答