Lectura de propiedades inexistentes en POO en PHP

En el ejemplo dado en la lección anterior, aplicamos la magia del método __get para capturar el acceso a propiedades privadas. En realidad, este método también puede ser útil para capturar accesos a propiedades inexistentes.

Veamos un ejemplo práctico. Supongamos que tenemos una clase User con nombre y apellido, que son propiedades públicas:

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

Hagamos que el objeto de la clase se comporte como si también tuviera una propiedad full, que muestre el nombre y apellido del usuario. Usemos para esto nuestro método mágico __get:

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

Comprobemos:

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

Cree una clase Date con propiedades públicas year, month y day. Usando la magia, haga la propiedad weekDay, que devolverá el día de la semana correspondiente a la fecha.