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'
?>
year, month ва day оммавий хусусиятлари
бўлган Date классини ясанг.
Магия ёрдамида weekDay хусусиятини ясанг,
у санага мос келувчи ҳафта кунини қайтарсин.