Odczytywanie nieistniejącej właściwości w OOP w PHP
W przykładzie podanym w poprzedniej lekcji, zastosowaliśmy magię metody
__get do przechwytywania odwołań do
właściwości prywatnych. W rzeczywistości ta metoda
może być również przydatna do przechwytywania
odwołań do nieistniejących właściwości.
Spójrzmy na praktycznym przykładzie. Niech
nasza klasa User ma nazwisko i
imię, które są publicznymi
właściwościami:
<?php
class User
{
public $surn;
public $name;
}
?>
Zróbmy tak, aby obiekt klasy
zachowywał się tak, jakby miał również właściwość
full, wyświetlającą imię i nazwisko użytkownika.
Wykorzystajmy do tego naszą magiczną metodę
__get:
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
Sprawdźmy:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // wyświetli 'john smit'
?>
Stwórz klasę Date z publicznymi właściwościami
year, month i day.
Za pomocą magii stwórz właściwość weekDay,
która będzie zwracać dzień tygodnia, odpowiadający
dacie.