Четене на несъществуващо свойство в ООП в PHP
В примера, даден в предишния урок, приложихме магията на метода
__get за улавяне на достъп до
частни свойства. Всъщност този метод
също може да бъде полезен за улавяне на
достъпи до несъществуващи свойства.
Нека разгледаме практически пример. Нека
имаме клас User с име и
фамилия, които са публични
свойства:
<?php
class User
{
public $surn;
public $name;
}
?>
Нека направим така, че обектът от класа
да се държи така, сякаш има и свойство
full, което извежда името и фамилията на потребителя.
Ще използваме за целта нашия магически метод
__get:
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
Да проверим:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // ще изведе 'john smit'
?>
Направете клас Date с публични свойства
year, month и day.
Чрез магията направете свойство weekDay,
което да връща деня от седмицата, съответстващ на
датата.