O meu ficou assim...
Endereco.php <?php
namespace Alura\Banco\Modelo;
/**
Class Endereco
@package Alura\Banco\Modelo
@property string $cidade
@property string $bairro
@property string $rua
@property string $numero */ 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 alteraCidade(string $cidade): void {
$this->cidade = $cidade;
}
public function alteraBairro(string $bairro): void {
$this->bairro = $bairro;
}
public function alteraRua(string $rua): void {
$this->rua = $rua;
}
public function alteraNumero(string $numero): void {
$this->numero = $numero;
}
public function __toString(): string {
return "{$this->rua}, {$this->bairro}, {$this->numero}, {$this->cidade}";
}
public function __get(string $nomeAtributo) {
$metodo = 'recupera' . ucfirst($nomeAtributo); return $this->$metodo();
}
public function __set(string $nomeAtributo, $valorAtributo): void {
$metodo = 'altera' . ucfirst($nomeAtributo); $this->$metodo($valorAtributo);
}
}
enderecos.php <?php
use Alura\Banco\Modelo\Endereco;
require_once 'autoload.php';
$umEndereco = new Endereco('Anápolis', 'Cidade Jardim', 'Rua F', '1302'); $outroEndereco = new Endereco('Brasília', 'Varjão', 'Rua 8', '26');
$umEndereco->cidade = 'Minha Cidade 2';
echo $umEndereco->cidade;