Branje neobstoječe lastnosti v OOP v PHP
V primeru, predstavljenem v prejšnji lekciji, smo uporabili magično metodo
__get za prestrezanje dostopa do
zasebnih lastnosti. Pravzaprav lahko ta metoda
prav tako pride prav za prestrezanje
dostopov do neobstoječih lastnosti.
Poglejmo si praktični primer. Naj imamo
razred User z imenom in
priimkom, ki sta javni
lastnosti:
<?php
class User
{
public $surn;
public $name;
}
?>
Naredimo tako, da se bo objekt razreda
obnašal, kot da ima tudi lastnost
full, ki izpiše ime in priimek uporabnika.
Za to uporabimo našo magično metodo
__get:
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
Preverimo:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // izpiše 'john smit'
?>
Naredite razred Date z javnimi lastnostmi
year, month in day.
Z magijo naredite lastnost weekDay,
ki bo vrnila dan v tednu, ki ustreza
datu.