1
resposta

Desafio: __set

Fiz assim

    public function __get(string $nomeAtributo)
    {
        $metodo = 'recupera' . ucfirst($nomeAtributo);
        return $this->$metodo();
    }

    public function __set(string $nomeAtributo, $novoNome): void
    {
        $metodo = $this->__get($nomeAtributo);
        echo "Alterando $metodo para $novoNomeAtributo" . PHP_EOL;
        $this->$nomeAtributo = $novoNomeAtributo;
    }

no arquivo de execucao

$umEndereco = new Endereco('Goiania', 'Centro', 'Rua 10', '18B');

$umEndereco->bairro = 'Novo Bairro';

echo $umEndereco . PHP_EOL;


resultado da execucao:

php enderecos.php

Alterando Centro para Novo Bairro

Rua 10, 18B, Novo Bairro, Goiania

1 resposta

Olá, Gilberto. Tudo bem?

Parabéns pelo desenvolvimento da sua solução ficou muito boa! Agradeço por compartilhar aqui conosco :)

Só uma observação, no método mágico __set() você adicionou o __get(), ele não é necessário, mas creio eu que você adicionou para efeitos de capricho na visualização :D!

 $metodo = $this->__get($nomeAtributo);

Bons estudos, abraços!