如果值不存在,则附加值Cookie 我试图插入cookie逻辑很简单
检查值是否存在。如果没有在逗号中插入新值和旧值 分开的形式。我尝试了一些代码,但无法正确 结果 - 在这段代码中应该插入一个新值,这是一个hapening但没有得到旧值
$current_value = '';
if(!isset($_COOKIE['blog_id_cookie'])){
setcookie('blog_id_cookie', $id);
$current_value[] = $_COOKIE['blog_id_cookie'];
} else {
$current_value = explode(',', $_COOKIE['blog_id_cookie']);
}
if(!in_array($id, $current_value)){
$current_value[] = $id;
$cookie_name = "blog_id_cookie";
setcookie($cookie_name, implode(',', $current_value));
}
>编辑2
public function Details($id,$uid){
$cookie_name = 'blog_id_cookie';
if (isset($_COOKIE[$cookie_name])) {
$current_value = explode(',', $_COOKIE[$cookie_name]);
} else {
$current_value = array();
}
if (!in_array($id, $current_value)) {
$current_value[] = $id;
setcookie($cookie_name, implode(',', $current_value));
}
}
答案 0 :(得分:1)
首先,您要将$ current_value设置为字符串'',然后使用数组语法添加新元素。您应该在开头将$ current_value设置为array()。
此外,您在第二个setcookie()调用“$ current_valu”时输入错误,该调用应为“$ current_value”。
以下是代码的一些改进版本(在我看来)。虽然没有测试过这个。
$cookie_name = 'blog_id_cookie';
if (isset($_COOKIE[$cookie_name])) {
$current_value = explode(',', $_COOKIE[$cookie_name]);
} else {
$current_value = array();
}
if (!in_array($id, $current_value)) {
$current_value[] = $id;
setcookie($cookie_name, implode(',', $current_value));
}
编辑:由于原始帖子是使用函数定义更新的,因此这里有一个评论。您定义函数Details()但它不返回值。该功能应该做什么?也许应该return $current_value;
或return implode(',', $current_value);
?此外,$ uid参数似乎未使用,因此可以将其删除。