<?php
namespace Alura\Banco\Modelo;
/**
* Class Endereco
* @package Alura\Banco\Modelo
* @property-read string $cidade
* @property-read string $estado
* @property-read string $rua
* @property-read string $numero
* @property-read string $complemento
*/
class Endereco
{
private string $cidade;
private string $estado;
private string $rua;
private string $numero;
private string $complemento;
public function __construct(string $cidade, string $estado, string $rua, string $numero, string $complemento)
{
$this->cidade = $cidade;
$this->estado = $estado;
$this->rua = $rua;
$this->numero = $numero;
$this->complemento = $complemento;
}
public function __toString(): string
{
return "{$this->rua}, {$this->numero}, {$this->complemento}, {$this->cidade}, {$this->estado}";
}
public function __get($nomeAtributo)
{
//rua -> getRua();
$metodo = ucfirst($nomeAtributo);
$metodo = 'get'. $metodo;
return $this->$metodo();
}
public function __set($nomeAtributo, $valorAtributo)
{
$atributo = 'set'. ucfirst($nomeAtributo);
$this->$atributo($valorAtributo);
}
<?php
require_once 'autoload.php';
use Alura\Banco\Modelo\Endereco;
$end1 = new Endereco('Rio de janeiro',
'RJ',
'Rua Paulo Baeta Neves',
'2',
'Lote2 quadra F'
);
$end2 = new Endereco('São Paulo',
'SP',
'Alguma rua lá',
'65',
'longe de tudo'
);
$end1->rua = 'Paulo freire';
echo $end1->rua;