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:
<?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:
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
Comprobemos:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // mostrará 'john smit'
?>
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.