Čítanie neexistujúcej vlastnosti v OOP v PHP
V príklade uvedenom v predchádzajúcej lekcii sme aplikovali mágiu metódy
__get na odchytávanie prístupu k
súkromným vlastnostiam. V skutočnosti táto metóda
môže byť užitočná aj na odchytávanie
prístupov k neexistujúcim vlastnostiam.
Pozrime sa na praktický príklad. Nech
máme triedu User s menom a
priezviskom, ktoré sú verejnými
vlastnosťami:
<?php
class User
{
public $surn;
public $name;
}
?>
Urobme to tak, aby sa objekt triedy
správal tak, ako keby mal tiež vlastnosť
full, ktorá vypisuje meno a priezvisko používateľa.
Použime na to našu magickú metódu
__get:
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
Skontrolujme:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // vypíše 'john smit'
?>
Urobte triedu Date s verejnými vlastnosťami
year, month a day.
Pomocou mágie urobte vlastnosť weekDay,
ktorá bude vracať deň v týždni, zodpovedajúci
dátumu.