1
resposta

Exercício __set

<?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 __toString(): string
    {
        return "{$this->rua}, {$this->numero},{$this->bairro},{$this->cidade}";
    }
    public function __get(string $nomeAtributo)
    {
        $metodo = 'recupera' . ucfirst($nomeAtributo);
        return $this->$metodo();
    }
    public function __set(string $nomeAtributo, string $value): void
    {
        $this->$nomeAtributo = $value;
    }


}
<?php

use Alura\Banco\Modelo\Endereco;

require_once 'autoload.php';

$umEndereco = new Endereco(
    ' Petropolis',
    ' bairro Qualquer',
    ' Minha rua',
    ' 71B'
);
$outroEndereco = new Endereco(
    ' Rio',
    ' Centro',
    ' Uma rua aí',
    ' 50'
);

echo 'Antes de mudar'. PHP_EOL;
echo '_____________________________________________'. PHP_EOL;
echo "$umEndereco" . PHP_EOL;
echo '_____________________________________________'. PHP_EOL;
echo 'Depois de mudar'. PHP_EOL;
echo '_____________________________________________'. PHP_EOL;
$umEndereco->rua = " Tamandaré";
echo $umEndereco . PHP_EOL;
echo '_____________________________________________'. PHP_EOL;

![](Imagem vscode )

1 resposta

Oi, Liliane, tudo bem?

Excelente resolução!

Parabéns pelo empenho nos estudos!

Continue praticando.

E qualquer dúvida nos procure aqui no fórum.

Abraços e bons estudos!