我编辑数组(使用json编码),然后尝试将其压入cookie,因此当我尝试显示此cookie的值时,会得到一个先前的值,而不是当前的值。
In to json
[["d33d6eb947","XS","5"],["78b33f6c64","XS","1"]
Set cookies
[["d33d6eb947","XS","5"]]
您可以看到数组和cookie不同,但是我将cookie设置为相同的数组。
这是我的代码:
<?php
function addItem($itemUrl, $itemSize, $itemCount)
{
if(isset($_COOKIE["cart"]))
{
$cartItems = json_decode($_COOKIE["cart"]);
}
else
{
$cartItems = array();
}
$itemsArray = array($itemUrl, $itemSize, $itemCount);
array_push($cartItems, $itemsArray);
$cartItems = json_encode($cartItems);
setcookie("cart", $cartItems, time()+60*60*24);
}
?>
当我使用(例如)print_r($ cartItems);我得到一个带有两个(例如)值的数组,但是当我使用(在setcookie之后)print_r($ _ COOKIE [“ cart”]);我得到一个只有一个值的数组。当我重用此功能并重新加载页面时,我得到了一个包含三个值的数组和一个只有两个值的cookie。我该怎么办?
答案 0 :(得分:0)
尝试json_decode($_COOKIE["cart"], true)
转换为数组(而不是StdObject)。