PHP-SEESSION购物车类

之前练习session的时候封装的购物车类
原理也很简单

  • 实例化对象,调用里面的方法,把数据库里的数组数据取出来,判断SEESION不存在的情况下,添加到二维数组里,在其他页面取出来,也就是购物车页面展示出来,其中伴随增删操作。
  • 初学session的朋友们可以自己试一下
  • 当然最好的购物车方式,是session和缓存系统结合起来,这里仅供参考学习,代码很简单,如下:
  • -
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/2/22
 * Time: 10:12
 */

class Cart{

    /**
     * 把商品添加到购物车
     */
    public function addItem($arr){
        if(is_array($arr)){
            if(!empty($_SESSION['shopcar'])){
                if($this->checkItem($arr['id'])){//检查是否添加过
                    if($this->changeNum($arr['id'])){
                        return true;
                    }else{
                        return false;
                    }
                }else{
                    $_SESSION['shopcar'][] = $arr;
                    return true;
                }
            }else{
                $_SESSION['shopcar'][] = $arr;
                return true;
            }
        }
    }

    /**
     * 检查商品是否添加过
     */
    public function checkItem($id){
         foreach($_SESSION['shopcar'] as $value){
              if($id==$value['id']){
                  return true;
                  break;
              }
         }
         return false;
    }

    /**
     * 改变数量
     */
    public function changeNum($id,$boolData=true){
        if($boolData){//加数量
            foreach($_SESSION['shopcar'] as $key=>$value){
                if($id==$value['id']){
                    $_SESSION['shopcar'][$key]['num']+=1;
                    return true;
                }
            }
            return false;
        }else{//减数量
            foreach($_SESSION['shopcar'] as $key=>$value){
                if($id==$value['id']){
                    $_SESSION['shopcar'][$key]['num']-=1;
                    if($_SESSION['shopcar'][$key]['num']<1){
                         $this->deleteItem($id);
                    }
                    return true;
                }
            }
            return false;
        }
    }

    /**
     * 删除购物车中的商品
     */
    public function deleteItem($id){
        foreach($_SESSION['shopcar'] as $key=>$value){
            if($id==$value['id']){
                unset($_SESSION['shopcar'][$key]);
                return true;
            }
        }
        return false;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值