我正在尝试创建一个 PHP 购物车,但它的行为不正确。在添加阶段,有一个检查,如果产品存在于 $_SESSION 中,那么只需添加一个单元。如果产品不可用,则完整地写下信息。问题是这段代码,或者更确切地说,set() 函数,只是简单地将项目的 id 和数量添加到会话中,而忽略了数量。以及如何使它在添加产品时,每次在 $_SESSION 数组中创建一个单独的行?进一步的代码:
class Cart {
public function init(){
if(!isset($_SESSION)){
session_start();
}
if(!isset($_SESSION['card_items'])){
$_SESSION['card_items'] = array();
}
}
public function set($id, $price){
if($_SESSION['card_items']['id'] = $id)
{
$_SESSION['card_items']['qty']++;
}
else
{
$_SESSION['card_items']['id'] = $id;
$_SESSION['card_items']['price'] = $price;
$_SESSION['card_items']['qty'] = 1;
}
}
public function get(){
foreach ($_SESSION as $temp){
//echo $temp."<br />";
print_r($temp);
}
}
}
$cart = new Cart;
$cart->init();
$cart->set(5, 2000);
$cart->get();
它发生了。分配有问题。这里我没有检查条件,而是分配了变量。
$_SESSION['card_items']['id'] = $id
但你必须
$_SESSION['card_items']['id'] === $id
减去一个问题。现在如何在数组中为每个产品创建一个新行?
我们得到