Exemple #1
0
    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);
Exemple #2
0
$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'));
    }
    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);
/*
 * Class to write objects
 * only for ShopProduct class
 */
class ShopProductWriter
{
    public function write(ShopProduct $shopProduct)
    {
        $str = "{$shopProduct->title}: " . $shopProduct->getProducer() . "({$shopProduct->price})\n";
        print $str;
    }
}
/*
 * create class objects
 */
$product1 = new ShopProduct();
$product2 = new ShopProduct('My Guitar Gently Weeps', 'Rengo', 'Star', '2.99');
//set with constructor
$writer = new ShopProductWriter();
/*
 * product 1 (without setter)
 */
$product1->title = "Hey Jude";
$product1->producerFirstName = "John";
$product1->producerMainName = "Lennon";
$product1->price = "1.99";
//$product1->abitraryAddition="treehouse"; // ---> can add properties outside the class
print "author: {$product1->getProducer()}\n";
$writer->write($product2);
var_dump($product1);
var_dump($product2);
Exemple #5
0
    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();
Exemple #6
0
<?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);
 */
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();
Exemple #8
0
    public $price = 0;
    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());