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

Minha solução metodo __set

Arquivo da classe (Endereco.php):

<?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 __get(string $nomeAtributo): string
  {
    $metodo = 'recupera' . ucfirst($nomeAtributo); // guarda na variável $metodo o nome das funções recuperaRua, recuperaBairro, recuperaCidade e recuperaNumero de acordo com o nome do atributo que colocamos como input (rua, bairro, cidade ou numero).
    return $this->$metodo();// equivalente a escrever 'recuperaRua()', 'recuperaBairro()', 'recuperaCidade()' ou 'recuperaNumero()'.
  }

  public function __set(string $nomeAtributo, string $novoValorAtributo): void
  {
    $this->$nomeAtributo = $novoValorAtributo;
  }
}

Arquivo de teste (endereco.php):

<?php

require_once 'autoload.php';

use Alura\Banco\Modelo\Endereco;

$umEndereco = new Endereco (
  'Recife',
  'Centro',
  'Rua Do Sossego',
  '55J'
);

echo $umEndereco->bairro . PHP_EOL; 

$umEndereco->bairro = 'Imbiribeira';

echo $umEndereco->bairro . PHP_EOL;

Retorno no terminal:

Natália@DESKTOP-JCK623T MINGW64 ~/Documents/Alura/Formação PHP/1.3 Orientacao a Objetos com PHP/projeto
$ php endereco.php
Centro
Imbiribeira
1 resposta
solução!

Oi, Natália, como vai?

Isso mesmo! Ótima solução, ficou completa.

Parabéns pelo empenho nos estudos!

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!