public $price = 0; function getProducer() { return "{$this->producerFirstName} " . "{$this->producerMainName}"; } function __construct($title, $firstName, $mainName, $price) { $this->title = $title; $this->producerMainName = $mainName; $this->producerFirstName = $firstName; $this->price = $price; } } class ShopProductWriter { function write(ShopProduct $shopProduct) { $str = "{$shopProduct->title}:" . $shopProduct->getProducer() . "({$shopProduct->price})\n"; print $str; } } class Wrong { public $variable = 1; } $product2 = new ShopProduct("Собачье сердце", "Михаил", "Булгаков", 5); $writer = new ShopProductWriter(); $writer->write($product2); echo "<hr>"; $wrongClass = new Wrong(); $writer->write($wrongClass);
} public function getProducer() { return "{$this->producerFirstName}" . " {$this->producerMainName}"; } } class ShopProductWriter { public function write(ShopProduct $shopProduct) { $str = "{$shopProduct->title}: " . $shopProduct->getProducer() . " ({$shopProduct->price})\n"; print $str; } public function setArray(array $storearray) { $this->array = $storearray; } public function setWriter(ObjectWriter $objWriter = null) { $this->writer = $objWriter; } } class ShopProductWrong { } $oShopProduct = new ShopProduct("My Antonia", "Willa", "Cather", 5.99); $oShopProductWriter = new ShopProductWriter(); $oShopProductWrong = new ShopProductWrong(); $oShopProductWriter->write($oShopProduct); //Aquí da error porque el metodo write << ShopProductWriter::write() >> solo acepta como parametro una instancia de la clase ShopProduct $oShopProductWriter->write($oShopProductWrong);
$product2->producerFirstName = 'Михаил'; $product2->price = 5.99; echo '<br />'; print 'Автор: ' . $product2->getProducer(); var_dump($product1); // Рядом с объектов выводится его уникальный идентификатор var_dump($product2); // Пример определения типов //is_null(); //is_bool(); //is_array(); //is_resource(); //Простая работа с xml //$settings = simplexml_load_file("settings.xml"); class ShopProductWriter { public function write(ShopProduct $shopProduct) { $str = $shopProduct->title . ' : ' . $shopProduct->getProducer() . ' ' . $shopProduct->price; print $str; } public function isArray(array $arr) { // Проверка на массив, для остальных стандартных типов данных используем is_int и прочее } } $writer = new ShopProductWriter(); $writer->write($product2); var_dump($writer instanceof ShopProductWriter); // Проверка принадлежности экземпляра класса к классу var_dump(is_a($writer, 'ShopProductWriter'));
{ $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();
<?php class shopProduct { public $title; protected $producer = []; public $price; public function __construct($title, $producerName1, $producerName2, $price) { $this->title = $title; $this->producer[] = $producerName1; $this->producer[] = $producerName2; $this->price = $price; } public function getProducer() { return implode(' ', $this->producer); } } class ShopProductWriter { public function write($shopProduct) { $str = "{$shopProduct->title}: " . $shopProduct->getProducer() . " ({$shopProduct->price})\n"; print $str; } } $product1 = new ShopProduct("My Antonia", "Willa", "Cather", 5.99); $writer = new ShopProductWriter(); $writer->write($product1);
function __construct($title, $firstName, $mainName, $price) { $this->title = $title; $this->producerFirstName = $firstName; $this->producerMainName = $mainName; $this->price = $price; } function getProducer() { return "{$this->producerFirstName}" . " {$this->producerMainName}"; } } class ShopProductWriter { public function write(ShopProduct $shopProduct) { $str = "{$shopProduct->title}: " . $shopProduct->getProducer() . " ({$shopProduct->price})\n"; print $str; } } /* $product1 = new ShopProduct( "My Antonia", "Willa", "Cather", 5.99 ); $writer = new ShopProductWriter(); $writer->write( $product1 ); */ class Wrong { } $writer = new ShopProductWriter(); $writer->write(new Wrong());