我无法显示会话中的数组数据?

时间:2015-11-24 12:33:01

标签: php

请检查以下代码我正在尝试为我的网站实现基于会话的购物车系统:

当我发布表格时会发生这种情况:

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;

结果什么都没有,所以我在这里做错了什么?

2 个答案:

答案 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_reportingdisplay_errorsdisplay_errors是   可能是你要改变的那个。