PHP商城购物车类

<?php 


/*
 购物车类
*/
 // session_start();
class Cart
{

    //定义一个数组来保存购物车商品
    private $iteams;
    private static $ins=null;

    final protected function __construct()
    {

        if(isset($_session['cart']))
        {
            $this->$iteams=session('cart');
        }else
        {
            $this->iteams=array();
        }
    }
    /*防克隆*/
    final protected function __clone(){}
    

    /*单列模式调用此类*/
    public static function getins()
    {
        if(self::$ins==null)
        {
            self::$ins=new self();
        }
        return self::$ins;
    }


    


    /*添加商品*/
    public function add($goods_id,$goods_name,$shop_price)
    {
        if(!isset($this->iteams[$goods_id]))
        {
            $row=array();
            $row['goods_name']=$goods_name;
            $row['shop_price']=$shop_price;
            $row['num']=1;
            $this->iteams[$goods_id]=$row;
        }else
        {
            $this->iteams[$goods_id]['num']+=1;
        }
        return $this->iteams;
    }



    /*删除商品*/
    public function del($goods_id)
    {
        unset($this->iteams[$goods_id]);
    }


    /*减少一件商品数量*/

    public function _num($goods_id)
    {
        if(isset($this->iteams[$goods_id]))
        {
            $this->iteams[$goods_id]['num']-=1;
            if($this->iteams[$goods_id]['num']==0)
            {
                $this->del($goods_id);
            }
        }
        
    }


    /*计算商品总价格*/

    public function total_price()
    {
        $money=0.0;
        foreach($this->iteams as $v)
        {
            $money+=$v['shop_price']*$v['num'];
        }
        return $money;
    }


    /**计算商品总数量(有多少种商品)*/
    public function shop_num()
    {    
        return count($this->iteams);

    }
    /*列出所有商品*/

    public function lists_shop()
    {
        return $this->iteams;
    }


    /*清空购物车*/

    public function clear_cart()
    {
        $this->iteams=array();
    }

    /*session destory destruct 析构函数*/
    public function __destruct()
    {
        $_session['cart']=$this->iteams;
    }



}

$g=Cart::getins();
$g->add('1','sanxing',55);
$g->add('2','nokio',33.9);
$money=$g->total_price();

print_r($money);
echo '<br/>';
print_r($g->shop_num());
echo '<br/>';
print_r($g->lists_shop());


 ?>
原文地址:https://www.cnblogs.com/hnbiao/p/4505939.html