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;