“
Az objektum egyrendszer egyedileg
azonosítható szereplője, amelyet a külvilág felé
mutatott viselkedésével, belső struktúrájával és
állapotával jellemezhetünk
class SomethingWrong
{
public function makeSandwich() { /.../ }
public function countApples() { /.../ }
public function deleteOldEntries() { /.../ }
public function someOtherSillyThing() { /.../ }
}
class Fruit
{
public function eat()
{
echo “nyami”;
}
}
class Orange extends Fruit
{
}
$orange = new Orange();
$orange->eat();
// Eredmény: nyami
82.
Dinamikus kötés
class A
{
protected $text = ‘Hello!’;
public function sayHello()
{
echo $this->text;
}
}
class B extends A
{
protected $text = ‘Namaste!’;
}
$b = new B();
$b->sayHello();
Namaste!
83.
Óvatosan a hierarchiakialakításával!
(http://www.snopes.com/humor/nonsense/kangaroo.asp)
class Fruit
{
public function eat()
{
echo 'nyam-nyam';
}
}
class Apple extends Fruit
{
public function eat()
{
echo 'nyum-nyum';
parent::eat();
}
}
// Eredmény: nyam-nyamnyum-nyum
class Apple
{
protected static $number = 0;
public function __construct()
{
self::$number = self::$number + 1;
}
public static function getNumberOfApples()
{
return self::$number;
}
}
$a = new Apple();
echo Apple::getNumberOfApples();
class A
{
protected static $text = ‘Hello!’;
public static function sayHello()
{
echo self::$text;
}
}
class B extends A
{
protected static $text = ‘Namaste!’;
}
B::sayHello();
class Apple
{
protected $color = ‘red’;
public function __construct($color)
{
$this->color = $color;
}
public static function getColor()
{
return $this->color;
}
}
$a = new Apple(‘green’);
Apple::getColor();
HIBA
class Example
{
public $var1 = 1;
public $var2 = 2;
public $var3 = 3;
protected $var4 = 4;
protected $var5 = 5;
public function iterateAttributes()
{
foreach ($this as $key => $value)
{
echo $key.’: ‘.$value.PHP_EOL;
}
}
}
class Container2 extendsContainer
{
public function __isset($name)
{
return isset($this->data[$name]);
}
public function __unset($name)
{
unset($this->data[$name]);
}
}
$a = new Container();
isset($a->name);
unset($a->name);