0
respostas

Exercício __set

Minha solução do Exercício do __set

Endereco.php

<?php 

namespace Alura\Banco\Modelo;

class  Endereco {
    private $cidade;
    private $bairro;
    private $rua;
    private $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()
    {
        return $this->cidade;
    }

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

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

    public function recuperaNumero()
    {
        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($nome, $valor) {
        $this->$nome = $valor;
    }


}

endereco.php

<?php
use Alura\Banco\Modelo\Endereco;

require_once 'autoload.php';

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

$umEnderecoTeste = new Endereco('Teste ', 'bairro teste', 'rua teste', 'numero teste');
$umEnderecoTeste->rua =  'Nova Rua';
echo $umEnderecoTeste;
exit();
echo $umEndereco . PHP_EOL;
echo $outroEndereco;