Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Execício_set

Fiz da seguinte forma

<?php
namespace Alura\Banco\Modelo;

class Endereco
{
    private string $cidade;
    private string $bairro;
    private string $rua;
    private string $numero;

    public function __construct(string $cidade, string $bairro, string $rua, string $numero)
    {
        $this->cidade = $cidade;
        $this->bairro = $bairro;
        $this->rua = $rua;
        $this->numero = $numero;
    }

    public function recuperaCidade(): string
    {
        return $this->cidade;
    }

    public function recuperaBairro(): string
    {
        return $this->bairro;
    }

    public function recuperaRua(): string
    {
        return $this->rua;
    }

    public function recuperaNumero(): string
    {
        return $this->numero;
    }

    public function alteraCidade(string $cidade): void
    {
        $this->cidade = $cidade;
    }

    public function alteraBairro(string $bairro): void
    {
        $this->bairro = $bairro;
    }

    public function alteraRua(string $rua): void
    {
        $this->rua = $rua;
    }

    public function alteraNumero(string $numero): void
    {
        $this->numero = $numero;
    }

    public function __get($atributo):string
    {
        return $this->{'recupera'.ucfirst($atributo)}();
    }

    public function __set($atributo, $valor):void
    {

        $this->{'altera'.ucfirst($atributo)}($valor);

    }
}

É errado fazer dessa forma ? return $this->{'recupera'.ucfirst($atributo)}();

1 resposta
solução!

Fala, Rogério. Não é errado não. Funciona. :-)

Gostei da sua implementação.