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 :

User.php<?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 :

User.php<?php
  class User
  {
    public $surname;
    public $name;
    public $patronymic;
    
    public function __get($property)
    {
      if ($property == 'full') {
        return $this->surn . ' ' . $this->name;
      }
    }
  }
?>

Vérifions :

index.php<?php
  $user = new User;
  
  $user->surn = 'john';
  $user->name = 'smit';
  
  echo $user->full; // affichera 'john smit'
?>
Задание 1

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.