1
resposta

Desafio __set()

<?php
/**
 * Class Endereco
 * @package Alura\Banco\Model
 * @property-read string $cidade
 * @property-read string $bairro
 * @property-read string $rua
 * @property-read string $numero
 */
namespace Alura\Banco\Model;

class Endereco
{

  private string $cidade;
  private string $rua;
  private string $bairro;
  private string $numero;

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

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


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

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

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

  public function __toString(): string
  {
    return "Rua: {$this->rua}, Número: {$this->numero}, Bairro: {$this->bairro}, Cidade:{$this->cidade}";
  }

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

  public function __set($novoEndereco, $valor):void
  {
    echo "Endereço '$novoEndereco' to '$valor'\n";
    $this->data[$novoEndereco] = $valor;
  }
}
1 resposta

Oi Rodrigo, como vai?

Parabéns pelo empenho na resolução dos desafios propostos!

Caso tenha quaisquer comentários ou dúvidas a respeito de alguma aula ou desafio, pode postar aqui no fórum que vamos te responder!

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software