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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.