Чытанне неіснуючага ўласцівасці ў ААП у PHP

У прыкладзе, прыведзеным у папярэднім уроку, мы ўжывалі магію метаду __get для адлоўлівання звароту да прыватных уласцівасцей. На самой справе гэты метад таксама можа быць карысны для адлоўлівання зваротаў да неіснуючых уласцівасцей.

Паглядзім на практычным прыкладзе. Хай у нас ёсць клас User з імем і прозвішчам, якія з'яўляюцца публічнымі уласцівасцямі:

User.php<?php
  class User
  {
    public $surn;
    public $name;
  }
?>

Давайце зробім так, каб аб'ект класа веў сябе так, быццам у яго таксама ёсць уласцівасць full, якое выводзіць імя і прозвішча карыстальніка. Выкажам для гэтага наш магічны метад __get:

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

Праверым:

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

Зрабіце клас Date з публічнымі ўласцівасцямі year, month і day. З дапамогай магіі зрабіце ўласцівасць weekDay, якое будзе вяртаць дзень тыдня, які адпавядае даце.