请检查以下代码我正在尝试为我的网站实现基于会话的购物车系统:
当我发布表格时会发生这种情况:
session_start();
if (isset($_POST['addtocart'])):
$item = array(
'package' => $_POST['item_name'],
'amount' => $_POST['amount']
);
$_SESSION['cart'][] = $item;
endif;
然后数据是这样的:
array(2) {
[0]=>;
array(2) {
["package"]=>;
string(42) "Bronze (Division V) ->; Bronze (Division V)"
["amount"]=>;
string(1) "0"
}
[1]=>;
array(2) {
["package"]=>;
string(46) "Bronze (Division V) ->; Challenger (Challenger)"
["amount"]=>;
string(4) "1666"
}
}
我试图显示这样的数据:
foreach ($_SESSION['cart'] as $item):
echo $item->package;
endforeach;
结果什么都没有,所以我在这里做错了什么?
答案 0 :(得分:2)
您将package
存储为数组项并尝试将其作为对象属性检索。
所以尝试更改此行
echo $item->package;
到
echo $item['package'];
您的当前代码应该抛出错误,
Warning: PHP Notice: Undefined property: stdClass::$package
答案 1 :(得分:0)
正如@davejal所说,你应该打开一些调试选项,以便在开发时获得更多错误细节。如何操作可以在这里阅读:https://stackoverflow.com/a/845025/3948598
您需要在php.ini中启用错误显示。
在PHP文档中查看此页面以获取有关2的信息 指令:
error_reporting
和display_errors
。display_errors
是 可能是你要改变的那个。