Endereco.php
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 __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($nomeAtributo, $valor)
{
$this->$nomeAtributo = $valor;
endereco.php
$umEndereco = new Endereco('Salvador', 'Itacaranha', 'Rio do Meio', '75');
$outroEndereco = new Endereco('Rio de Janeiro', 'Jacarezinho', 'Alemão', '666');
$umEndereco->cidade = 'Rio Branco';
echo $umEndereco->cidade;