<?php //开启session session_start(); //获取传过来的商品名和价格 $name = $_GET['name']; $price = $_GET['price']; //把session中的商品信息和传过来的(刚买的)商品信息对比 $goods = $_SESSION['goods']; if ($name == $goods[$name]['name']) { //买过的话,则总价格增加,相应商品数量增加 $_SESSION['totalPrice'] += $price; $goods[$name]['number'] += 1; } else { //第一次买的话,将相应的商品信息添加到session中 $goods[$name]['name'] = $name; $goods[$name]['price'] = $price; $goods[$name]['number'] += 1; $_SESSION['totalPrice'] += $price; } $_SESSION['goods'] = $goods; //购买处理完毕后跳转到商品列表 header('location: goodsList.php'); ?>
首先第一点是这一句$goods = $_SESSION['goods']; 在其他相关联的php文件中都没有看到有把值添加到 $_SESSION['goods']里面,那么这句话结束变量$goods是变成一个空的$_SESSION['goods']全局数组了吗?
还有一点就是$goods[$name]['name']中第一维参数为什么是$name,这个二维数组也不太理解其含义,还是说这段代码本来就写的不好!(如果前面能理解,后面遍历的时候是foreach($goods as value){ echo $value['name'].$value['price']}到是可以理解~)