购物车类
<?php //购物车类 //实现方式:单例加session //方法: /*** 添加商品 修改商品 商品+1 商品-1 删除商品 显示商品列表 计算商品的总类 计算商品的总数量 计算商品的总价格 清空购物车 **/ class cart{ static protected $ins = false; protected $items = array(); //构造函数 final protected function __construct(){} //克隆 final protected function __clone(){} //实例化类的静态方法 protected function getIns(){ if(self::$ins === false){ self::$ins = new self(); } return self::$ins; } //提供公共的接口,并把实例化的对象赋值到session里面 static public function getCart(){ //判断是否存在购物车 if(!isset($_SESSION['cart']) || !($_SESSION['cart'] instanceof self)){ $_SESSION['cart'] = self::getIns(); } return $_SESSION['cart']; } //判断商品是否已经存在购物车 protected function exisItem($id){ return array_key_exists($id,$this->items); } //添加商品 public function addItem($id,$name,$shop_price,$num){ if(!$this->exisItem($id)){ $this->items[$id] = array(); $this->items[$id]['name'] = $name; $this->items[$id]['shop_price'] = $shop_price; $this->items[$id]['num'] = $num; }else{ $this->items[$id]['num'] += $num; } } //修改商品 public function modItem($id,$num){ if(!$this->exisItem($id)){ return; } $this->items[$id]['num'] = $num; } //商品+1 public function incItem($id){ if(!$this->exisItem($id)){ return; } $this->items[$id]['num'] += 1; } //商品-1 public function decItem($id){ if(!$this->exisItem($id)){ return; } if($this->itemw[$id]['num'] == 0){ $this->delItem($id); return; } $this->items[$id]['num'] -= 1; } //删除商品 public function delItem($id){ if(!$this->exisItem($id)){ return; } unset($this->items[$id]); } //显示商品列表 public function listItem(){ return $this->items; } //计算商品的总类 public function cntItem(){ return count($this->items); } //计算商品的总数量 public function totalItem(){ if(!$this->cntItem()){ return 0; } $total = 0; foreach ($this->items as $v){ $total += $v['num']; } return $total; } //计算商品的总价格 public function totalPrice(){ if(!$this->cntItem()){ return 0; } $totalPrice = 0; foreach ($this->items as $v){ $totalPrice += $v['shop_price']*$v['num']; } return $totalPrice; } //清空购物车 public function clear(){ $this->items = array(); } } ?>