Neegzistuojančios savybės skaitymas OOP PHP
Pavyzdyje, pateiktame ankstesnėje pamokoje, mes taikėme magiškąjį metodą
__get privacioms savybėms aptikti. Tiesą sakant, šis metodas
taip pat gali būti naudingas aptikti
kreipimusi į neegzistuojančias savybes.
Pažiūrėkime į praktinį pavyzdį. Tarkime, kad
turime klasę User su vardu ir
pavarde, kurie yra viešos
savybės:
<?php
class User
{
public $surn;
public $name;
}
?>
Padarykime taip, kad klasės objektas
elgtųsi taip, tarsi jis taip pat turėtų savybę
full, kuri išveda vartotojo vardą ir pavardę.
Naudokime tam mūsų magiškąjį metodą
__get:
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
Patikrinkime:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // išves 'john smit'
?>
Sukurkite klasę Date su viešosiomis savybėmis
year, month ir day.
Naudodami magiją, sukurkite savybę weekDay,
kuri grąžintų savaitės dieną, atitinkančią
datą.