2011-08-23 92 views
0

我問你的意見。 我與會話/對象交互奮鬥....Php會話對象交互

<?php 
class ShoppingCart 
{ 

    public $products 

    public function __construct($session) { 
     $this->products = $session['products']; 
    } 

    public addProduct($id) { 
     $this->products[] = new Product($id); 
     $_SESSION['products'] = $this->products; 
    } 

} 

session_start(); 
$shoppingCart = new ShoppingCart($_SESSION); 
$shoppingCart->addProduct(1); 
?> 

你會如何寫類似的代碼? 它只是存根,但我不喜歡我的addProduct方法和所有這些代碼。 請不要批評,並幫助我改進它。 也許有一些設計模式或這種交互的例子?

回答

1
class ShoppingCart { 

    private $products = array(); 

    public function __construct() { 
     if (isset($_SESSION['products'])) { 
      $this->products = &$_SESSION['products']; 
     } 
    } 

    public addProduct($id) { 
     $this->products[] = new Product($id); 
    } 
} 
+0

我喜歡它!它簡化並消除了對象屬性/會話鴻溝的問題。謝謝。 – greg606

+0

Upvote並標記爲最佳。 :) –