php spl 购物车 ArrayObject的使用 <?php class Product { /** * * @var 数目,描述,价格 */ protected $_partNumber, $_description, $_price; /** * * @param int $partNumber * @param string $description * @param int $price */ public function __construct($partNumber, $description, $price) { $this->_partNumber = $partNumber; $this->_description = $description; $this->_price = $price; } public function getPartNumber() { return $this->_partNumber; } public function getDescription() { return $this->_description; } public function getPrice() { return $this->_price; } } class Cart extends ArrayObject { protected $_products; public function __construct() { $this->_products = array(); parent::__construct($this->_products); } /** * @description 注意$this */ public function getCartTotal() { for ($i = $sum = 0, $cnt = count($this); $i < $cnt; $sum += $this[$i ++]->getPrice()) ; return $sum; } } $cart = new Cart(); $cart[] = new Product(1122, "商品A描述", 5.00); $cart[] = new Product(34324, "商品B描述", 6.00); echo $cart->getCartTotal();