基于购物车思想---将单例模式类放入session中

网上购物时,特定用户的购物车在某个购物网站中的所有页面是全局且唯一的,即无论在购买A物品还是购买B物品的页面,用户查询到的购物车中商品的信息是一样的。为了体现面向对象编程,获取商品数量、种类、价格等方法往往封装成一个类,为了获取商品信息,将该类的实例存入session中。既然购物车是全局且唯一的,那么这个类可以设置为单列模式。
代码如下

sign = mt_rand(0,100);//测试单例用
    }
    protected function __clone()
    {
    }

    //获取实例
    protected function getIns()
    {
        if(!(self::$ins instanceof self))
        {
            self::$ins = new self();
        }
        return self::$ins;
    }

    public function getCart()
    {
        if(!isset($_SESSION['cart']) || !($_SESSION['cart'] instanceof self)){
            $_SESSION['cart'] = self::getIns();
        }
        return $_SESSION['cart'];
    }
    
    //其余获取商品信息的方法
    //......
}

print_r(CartTool::getCart());


你可能感兴趣的:(php)