Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php setcookie不使用$value参数的字符串数组_Php_Arrays_Arguments_Argument Passing_Setcookie - Fatal编程技术网

Php setcookie不使用$value参数的字符串数组

Php setcookie不使用$value参数的字符串数组,php,arrays,arguments,argument-passing,setcookie,Php,Arrays,Arguments,Argument Passing,Setcookie,我正在尝试这样做: setCookie('visitor', array(0 => 'one', 1 => 'two'), time()+3600, COOKIEPATH, COOKIE_DOMAIN, false); 但我无法让它工作。php引用解释了“$value as string[optional]”,据我所知,它应该接受字符串数组作为参数。如果我对php引用(string[optional])的理解有误,请帮助我实现类似的目标,或者纠正我的错误 以下是setcookie函

我正在尝试这样做:

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);
使用
序列化(数组(0=>one',1=>two'))

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

否:如果php手册中说函数需要字符串。。。那么它们的意思是一根绳子。不是字符串数组

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

使用
序列化(数组(0=>'one',1=>'two'))

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

否:如果php手册中说函数需要字符串。。。那么它们的意思是一根绳子。不是字符串数组

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

如果
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"
    }
}
如果
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"
    }
}

Cookie值必须是字符串。例如,用<代码> JSONYNECODEN/COD>将数据打包成字符串。考虑将这些数据存储在会话或数据库中。Cookie只能用作密钥容器(会话文件或数据库条目)。Cookie值必须是字符串。例如,用<代码> JSONYNECODEN/COD>将数据打包成字符串。考虑将这些数据存储在会话或数据库中。Cookie应该只作为密钥容器(会话文件或数据库条目)使用。好的,这件事成功了。但是你能解释一下这个字符串[可选]符号是什么意思吗?在php中如何将数组作为参数传递?第一个问题:添加到我的答案中。第二个问题:如果setCookie接受一个数组,那么您的方法是完全正确的。只是这个函数不接受数组,好吧。如果引用说字符串[],该怎么办?这意味着我可以传递一个字符串数组。对吗???@spartt:php指定的方法实际上是只写“array”,而不指定数组中元素的类型。@spartt:No。只是简单的“array”。检查示例:。第一个参数必须是字符串数组。文本参数描述告诉您。但是在规范行中,它只是简单地说了“数组”。好的,这东西起作用了。但是你能解释一下这个字符串[可选]符号是什么意思吗?在php中如何将数组作为参数传递?第一个问题:添加到我的答案中。第二个问题:如果setCookie接受一个数组,那么您的方法是完全正确的。只是这个函数不接受数组,好吧。如果引用说字符串[],该怎么办?这意味着我可以传递一个字符串数组。对吗???@spartt:php指定的方法实际上是只写“array”,而不指定数组中元素的类型。@spartt:No。只是简单的“array”。检查示例:。第一个参数必须是字符串数组。文本参数描述告诉您。但是在规范行中,它只是简单地说“array”。您必须小心
$key
不包含
]
或其他可能破坏它的内容。您必须小心
$key
不包含
]
或其他可能破坏它的内容。