我设法实现的OOP Cart
购物篮增加数量时添加相同的选项
一个项目包含1个或多个选项。
如果我再次添加相同的OptionID,那么数量应增加,而不是创建另一个Option
对象。如何做到这一点?
如果我再次添加相同的ItemID,它应该拒绝创建另一个Item
对象。
另外是我的OOP是好的?
class Cart {
public $item = array();
public function addItem($id) {
$item = new Item();
$item->setItem($id);
$this->item[] = $item;
return $item;
}
}
class Item {
private $id = array();
private $option = array();
public function setItem($id) {
$this->id = $id;
return $this;
}
public function addOption($id) {
$option = new Option();
$option->setOption($id);
$this->option[] = $option;
}
}
class Option {
private $quantity;
private $id;
public function setOption($id) {
$this->quantity = 1;
$this->id = $id;
return $this;
}
}
$cart = new Cart();
//ItemID 10
$item = $cart->addItem(10);
//OptionID
$item->addOption(11);
$item->addOption(22);
$item->addOption(22); //should increase quantity
//It should not create another object because we already have Item Object of ItemID10
$item = $cart->addItem(10);
$Shop = $cart;
echo "<pre>";
print_r($Shop);
echo "</pre>";
谢谢例如,我已经尝试过,并没有增加数量。虽然没有错误。 –
编辑我的文章:重写您的代码并进行测试。 – Bob
我在此之前发布的文章告诉他如何解决这个问题,但他没有得到它的工作,所以我重写了它。好吧,我真的不在乎-1。我帮助某人,所以我很高兴^^ – Bob