我有一个多维数组 $_SESSION("cart"),当我递归打印它时,它给出:
array
[0] => Array
(
[type] => Side orders
[name] => French Fries
[choice] => small
[quantity] => 1
[price] => 225
)
[1] => Array
(
[type] => Specialty Pizzas
[name] => Vegetarian
[choice] => large
[quantity] => 1
[price] => 1580
)
[2] => Array
(
[type] => Specialty Pizzas
[name] => Mediterranean
[choice] => large
[quantity] => 1
[price] => 1580
)
)我正在尝试通过循环遍历数组数组(键:1,2,3...)来打印购物车,并可以直接访问[类型,名称,选择...]但是当我尝试使用以下代码访问它时:
if (isset($_SESSION["cart"]) && count($_SESSION["cart"])>0)
{
echo '<pre>';
print_r ($_SESSION["cart"]);
echo '</pre>';
foreach ($_SESSION["cart"] as $key->$item){
$ty = $item->type;
$nm = $item->name;
$ch = $item->choice;
$pr = $item->price;
$qt = $item->quantity;
?>
<li>
<?= $ty ?>
<?= $nm ?>
<?= $ch ?>
<?= $pr ?>
<?= $qt ?>
}}
这将给出警告和致命错误: 警告:尝试在 中分配非对象的属性...在第 15 行(包含 foreach 循环的行)
警告:从 中的空值创建默认对象...14号线致命错误:无法访问 中的空属性...在第 14 行
我尝试在循环之前设置 key=0 并在循环中递增它;并迭代键,但它似乎不是一个有效的解决方案,因为它没有打印值,但致命错误消失了。我不确定出了什么问题。
我的错误报告是
error_reporting(E_ERROR |E_WARNING |E_PARSE);
更改代码:
foreach ($_SESSION["cart"] as $key->$item) {
自:
foreach ($_SESSION["cart"] as $key => $item) {
foreach
语句有两种结构:
1. foreach ($array as $value)
2. foreach ($array as $key => $value)
该错误很好地表明了问题。
第一
foreach ($_SESSION["cart"] as $key->$item) {
这是不正确的。使用 $key => $item
。
也
$item->type;
- 这是访问对象(而不是数组)属性的方式。
$item['type'];
- 这是你想要的。