【发布时间】:2018-08-02 21:27:04
【问题描述】:
我正在尝试重新编辑 cookie 值。
当我不使用&$prod 时,它不会改变数组值。
当我使用&$prod 时,它会更改数组但我得到:
为 foreach() 提供的参数无效
是否有任何其他方法可以更新现有数组或为什么会出现此错误?
$existingCookie = Cookie::get($cookie);
$arr = json_decode($existingCookie, true);
foreach ($arr as &$prod) {
if($productId === $prod["pid"]) {
if($prod["pqty"]!=$productQty){
$prod["pqty"] = $productQty;
$arr = json_encode($arr);
Cookie::put($cookie, $arr, Config::get('cart/cookie_expiry'));
echo var_dump($arr) . ' - '.$prod["pqty"];
}
}
}
【问题讨论】:
-
以
print_r($arr)开头 -
您正在循环期间修改 $arr 数组。这是完全错误的......
-
@u_mulder 数组([0] => 数组([pid] => 2 [pqty] => 3))
-
上一条评论解释了问题所在。阅读它。
标签: php loops cookies pass-by-reference