Lecture d'une propriété inexistante en POO en PHP
Dans l'exemple donné dans la leçon précédente, nous avons appliqué la magie de la méthode
__get pour intercepter l'accès aux
propriétés privées. En réalité, cette méthode
peut également être utile pour intercepter
les accès aux propriétés inexistantes.
Regardons un exemple pratique. Supposons
que nous ayons une classe User avec un nom et
un prénom, qui sont des propriétés
publiques :
<?php
class User
{
public $surn;
public $name;
}
?>
Faisons en sorte que l'objet de la classe
se comporte comme s'il avait également une propriété
full, affichant le prénom et le nom de l'utilisateur.
Utilisons pour cela notre méthode magique
__get :
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
Vérifions :
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // affichera 'john smit'
?>
Créez une classe Date avec les propriétés publiques
year, month et day.
À l'aide de la magie, créez une propriété weekDay,
qui renverra le jour de la semaine correspondant
à la date.