我想使用$_SESSION
来存储购物车中的商品。商品由id
定义,每个商品有3种尺寸,每种尺寸都会存储商品的数量。我想使用多维关联数组来实现:
$_SESSION['cart']['id'.$_GET['id']]['size'.$_POST['size']]['quantity'] += $_POST['quantity'];
但我猜想我遇到的问题(提示:未定义的索引
)是因为数组没有先被定义。
我希望保持简单,那么最简单的方法是什么?
$_SESSION
中。您需要假设它们没有被设置,并开始添加它们。isset()
函数。if(!isset($_SESSION['cart']['id'.$_GET['id']])) {
$_SESSION['cart']['id'.$_GET['id']] = array(
'sizeONE' => array(
'quantity' => 0
),
'sizeTWO' => array(
'quantity' => 0
),
'sizeTHREE' => array(
'quantity' => 0
),
);
}
显然,您需要修改上面的内容,可能只设置所需的产品ID,然后通过类似于isset()
的方式添加所选大小。我只是向您展示如何创建初始结构数组。
$myItem = new stdClass;
$myItem->id = $_GET['id'];
$myItem->sizeOne = new stdClass;
$myItem->sizeOne->name = "sizeOne";
$myItem->sizeOne->quantity = 1;
// repeat for sizeTwo and sizeThree
$_SESSION['cart'][$myItem->id] = $myItem;
好处:
更多的面向对象编程(OOP)方法应用于您的程序中。
缺点:
将对象存储在$_SESSION中可能会导致可扩展性问题。
if(isset($_POST['size'])){...
- koubin