Singleton Pattern In PHP.... How Can I Save State Between Requests
===

With the use of static variables and the singleton pattern, I thought that it would be easy enough to create a simple shopping cart that remembered what items where in the cart when another page was loaded.  

I am having a problem of the shopping cart not remembering what was already in it when the page is refreshed.

Is there a problem with my code below or should I just use globals or a mysql database. 

What is the best way to go about storing state.. 

    <?php
    //create a singleton class
    class shoppingCart {
        
        private static $_shoppingCartItems = array();
        private static $_instance = null;
    
        private function __construct(){
        
        }
     
        public static function getInstance(){
            if(self::$_instance == null)
                self::$_instance = new shoppingCart();
            return self::$_instance;            
        }
 

        public function add(ShoppingItem $item){
            $this->_shoppingCartItems[] = $item;
        }
    
        public function cartCount(){                 
            return count($this->_shoppingCartItems);
        }  
    }
    ?>

implementation 
        $item = new shoppingItem();
        
        $shoppingCart = shoppingCart::getInstance();
        $shoppingCart->add($item);
        $shoppingCart->add($item);
        
        //should increment by 2 on each page load but it doesn't
        echo $shoppingCart->cartCount(); 

Thanks in advance