Leitura de propriedades inexistentes em POO no PHP
No exemplo apresentado na lição anterior, aplicamos a mágica do método
__get para capturar o acesso a
propriedades privadas. Na verdade, este método
também pode ser útil para capturar
acessos a propriedades inexistentes.
Vejamos um exemplo prático. Suponha que
temos uma classe User com nome e
sobrenome, que são propriedades
públicas:
<?php
class User
{
public $surn;
public $name;
}
?>
Vamos fazer com que o objeto da classe
se comporte como se também tivesse uma propriedade
full, que retorna o nome completo do usuário.
Usaremos para isso nosso 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;
}
}
}
?>
Vamos testar:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // exibirá 'john smit'
?>
Crie uma classe Date com as propriedades públicas
year, month e day.
Usando a mágica, crie uma propriedade weekDay,
que retornará o dia da semana correspondente à
data.