public static function getCart(){
                /**
                        若session中已经有购物车对象了,
                        则不需要再赋值
                **/
                if (!isset($_SESSION['cart']) || !($_SESSION['cart'] instanceof self)) {
                        $_SESSION['cart'] = self::getIns();
                }
                return $_SESSION['cart'];        }
$_SESSION['cart'] = self::getIns();这句赋值是将生成的地址存放入session吗?如果是这样,当页面刷新后/页面结束后,对象重新生成/回收机制就会回收该对象,那对应的地址上的值不就改变了吗?
若是将生成的对象存入session,则以下两次得到的结果明显不一样,查看session文件,两次也有变化。那么除了$_SESSION['cart'] = self::getIns();这个赋值语句之外,其他并没有涉及到session的操作,为什么session的值会改变。而且不是说是吧购物车里的商品放入session吗?是怎么存放的session_start();
$cart = CartTool::getCart();
var_dump($cart);
session_start();
$cart = CartTool::getCart();if ($_GET['test'] == 'add') {
        $cart->addItem(1,'柚子',15,5);
        $cart->addItem(2,'西瓜',10,2);
        
}
var_dump($cart);;