【发布时间】:2015-03-06 09:39:02
【问题描述】:
我将此代码用于 Virtuemart:
$product_id_to_remove = 3;
$cart = json_decode($_SESSION['__vm']['vmcart']);
foreach($cart->cartProductsData as $k => $v){
if($v->virtuemart_product_id == $product_id_to_remove) unset($cart->cartProductsData[$k]);
}
$_SESSION['__vm']['vmcart'] = json_encode($cart);
但我得到了致命错误:Cannot use type of stdClass as array in ... 第 4 行。如果我在 json_decode($_SESSION['__vm']['vmcart' ]) 我收到警告:为 foreach() 提供的参数无效。
如何解决问题?
附言我是 php 的初学者,根本不知道 json_。代码由链接建议:stackoverflow.com/questions/28691203/how-to-remove-a-single-product-from-mod-virtuemart-cart
【问题讨论】:
-
如果第二个参数使用
true,则需要引用$cart['cartProductsData'],因为它返回的是关联数组而不是类。 -
试试
foreach(get_object_vars($cart->cartProductsData) as $k => $v) -
警告:get_object_vars() 期望参数 1 为对象,在中给出 null
-
第 5 行是哪一行?
-
对不起,我的意思是第 4 行:if($v->virtuemart_product_id == ...