Php会话对象交互

时间:2011-08-23 18:54:50

标签: php oop session object

我向你征求意见。 我很难与会话/对象互动....

<?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 个答案:

答案 0 :(得分: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);
    }
}