Nem létező tulajdonság olvasása OOP-ban PHP-ben
Az előző leckében bemutatott példában a
__get mágikus metódust alkalmaztuk a
privát tulajdonságokhoz való hozzáférés
elfogására. Valójában ez a metódus
hasznos lehet nem létező tulajdonságokhoz
való hozzáférés elfogására is.
Nézzünk egy gyakorlati példát. Legyen
egy User osztályunk keresztnévvel és
vezetéknévvel, amelyek nyilvános
tulajdonságok:
<?php
class User
{
public $surn;
public $name;
}
?>
Tegyük úgy, hogy az osztály objektusa
úgy viselkedjen, mintha lenne egy full tulajdonsága is,
ami megjeleníti a felhasználó kereszt- és vezetéknevét.
Használjuk ehhez a mágikus __get metódustunkat:
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
Teszteljük:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // kiírja 'john smit'
?>
Készítsen egy Date osztályt nyilvános tulajdonságokkal:
year, month és day.
Varázslattal készítse el a weekDay tulajdonságot,
amely visszaadja a dátumnak megfelelő hét napját.