购物车类(单例+session)

/** 燕十八 公益PHP培训

 课堂地址:YY频道88354001

 学习社区:www.zixue.it **/

/*
购物车类
单例+session
 */
 
  class cartLib{
      static $ins=null;
      public $goods=array();
      
      final protected function __construct() {
         
      }
      
      final protected function __clone() {
          
      }
      
      static function getIns(){
          if(!(self::$ins instanceof self)){
              self::$ins=new self();
          }
          return self::$ins;
      }
      
      static function getCart(){
          if(!(isset($_SESSION['cart']))||!($_SESSION['cart'] instanceof self)){
              $_SESSION['cart']=self::getIns();       
          }
          return $_SESSION['cart'];  
      }
      //增加商品到购物车,$id为产品id,$name产品名称,$price产品价格,$num产品数量
     public function add($id,$name,$price,$num=1){
           if($this->isHave($id)){
		        $this->incNum($id,$num);
				return;
		   }
           $this->goods[$id]=array('name'=>$name,'price'=>$price,'num'=>$num);
		
     }
     //判断购物车中是否已经有该产品
	 public function isHave($id){
	   return array_key_exists($id,$this->goods);

	 }
     //商品数量加$num
	 public function incNum($id,$num){
	   $this->goods[$id]['num']+=$num;
	 }
     //商品数量减$num
	 public function decNum($id,$num){
	   $this->goods[$id]['num']-=$num;
           if($this->goods[$id]['num']==0){
               $this->delGoods($id);
           }
	 }
      
     //修改购物车$id的产品数量为$num
	 public function updateNum($id,$num){
	   $this->goods[$id]['num']=$num;
           if($this->goods[$id]['num']==0){
               $this->delGoods($id);
           }
	 }
      
      //显示购物车中的所有产品的详细
      public function view(){
		     if(!$this->haveGoods()){
		     echo '购物车中没有产品';
			 exit();
		  }
          return $this->goods;
      }
     //显示购物车中的产品种类总和
	  public function totalKind(){
		    if(!$this->haveGoods()){
		     echo '购物车中没有产品';
			 exit();
		  }
	     return count($this->goods);
	  }

	  //显示购物车中产品数量总和
	  public function totalNum(){
		    if(!$this->haveGoods()){
		     echo '购物车中没有产品';
			 exit();
		  }
		  $totalNum=0;
	      foreach($this->goods as $v){
		      $totalNum+=$v['num'];
		  }
		  return $totalNum;
	  }

      //显示购物车产品的总价值
	  public function totalPrice(){
		  if(!$this->haveGoods()){
		     echo '购物车中没有产品';
			 exit();
		  }
	     $totalPrice=0;
		 foreach($this->goods as $v){
		      $totalPrice+=$v['num']*$v['price'];
		  }
		  return $totalPrice;
	  }
       //清空购物车
	  public function destroy(){
	     $this->goods=null;
	  }
      //检查购物车中是否有商品
	  public function haveGoods(){
		  if($this->goods!=null){
			  return true;
		  }else{
		      return false;
		  }
	  }
      //删除某个产品
	  public function delGoods($id){
	     unset($this->goods[$id]);
	  }   
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值