function getSummaryLine() { $base = parent::getSummaryLine(); $base .= ": page count - {$this->numPages}"; return $base; } } class ShopProductWriter { private $products = array(); public function addProduct(ShopProduct $shopProduct) { $this->products[] = $shopProduct; } public function write() { $str = ""; foreach ($this->products as $shopProduct) { $str .= "{$shopProduct->title}: "; $str .= $shopProduct->getProducer(); $str .= " ({$shopProduct->getPrice()})\n"; } print $str; } } $product1 = new CdProduct("cd1", "bob", "bobbleson", 4, 50); $product2 = new BookProduct("book1", "harry", "harrelson", 4, 30); $writer = new ShopProductWriter(); $writer->addProduct($product1); $writer->addProduct($product2); $writer->write();
*/ class ShopProductWriter { private $products = array(); public function addProduct(ShopProduct $shopProduct) { $this->products[] = $shopProduct; print_r($products[0]); } public function write() { $str = ""; foreach ($this->products as $shopProduct) { $str .= "{$shopProduct->title}:"; $str .= $shopProduct->getProducer(); $str .= "({$shopProduct->getPrice()})\n"; } print $str; } } /* * Executable code */ $dsn = "sqlite:items.db"; $pdo = new PDO($dsn, null, null); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $obj = ShopProduct::getInstance(1, $pdo); var_dump($obj); $writer = new ShopProductWriter(); $writer->addProduct($obj); $writer->write();