Deixe aqui neste tópico sua implementação do método __set
para que seja possível atribuir um valor diretamente às propriedades da classe Endereco
Deixe aqui neste tópico sua implementação do método __set
para que seja possível atribuir um valor diretamente às propriedades da classe Endereco
ficaria assim:
enderecos.php
<?php
use Alura\Banco\Modelos\Endereco;
require_once 'autoload.php';
$umEndereco = new Endereco('uma cidade', 'bairro', 'rua', 'numero');
$outroEndereco = new Endereco('outra cidade', 'outro bairro', 'outra rua', 'outro numero');
$umEndereco->cidade = "Nova Cidade";
echo $umEndereco;
Endereco.php
<?php
namespace Alura\Banco\Modelos;
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 __toString()
{
return "{$this->rua}, {$this->numero}, {$this->bairro}, {$this->cidade}";
}
public function alteraCidade($novaCidade): void{
$this->cidade = $novaCidade;
}
public function __set($nomeAtributo, $value): void{
$metodo = 'altera' . ucfirst($nomeAtributo);
$this->$metodo($value);
}
}
aqui funcionou assim.