日期:2014-05-16  浏览次数:20519 次

php session购物车问题

class CartTool
    {
        private static $ins;
        private $good = array();
       
        final private function __construct()
        {
            
        }
        final private function __clone()
        {
            
        }
        
        // 获取实例
        protected static function getIns() 
        {
        if(!(self::$ins instanceof self)) 
        {
            self::$ins = new self();
        }

        return self::$ins;
    }
        
        
        /**
         * 函数作用:把购物车的单例对象放到session里
         * 
         * 
         * @return instance 购物车的单例对象
         * */
        public static function getCart() 
        {
        if(!isset($_SESSION['cart']) || !($_SESSION['cart'] instanceof self)) 
        {
            echo '1';
            $_SESSION['cart'] = self::getIns();
        }

        return $_SESSION['cart'];
    }



这是我的购物车类(部分),我在页面直接引用它使用不会出现任何问题,但是在有一将它放入一序列的初始化类中在引用它的时候就会产生了一个问题,每次它都会重新生成过,就没有了单例的效果。不知道我的问题描述清楚了没有,请各位高手给小弟一点建议或者思路,有可能哪里出问题了???

------解决方案--------------------
建议换个思路实现。
用SESSION ID或者一个cookie变量做标志。