Aqui está a minha resolução do exercício do método mágico __set
Endereco.php
<?php
namespace Alura\Banco\Modelo;
/**
* Class Endereco
* @package Alura\Banco\Modelo
* @property-write string $cidade
* @property-write string $bairro
* @property-write string $rua
* @property-write 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 __set(string $nomeAtributo, string $valorAtributo)
{
$this->$nomeAtributo = $valorAtributo;
}
}
enderecos.php
<?php
use Alura\Banco\Modelo\Endereco;
require_once __DIR__ . '/autoload.php';
$umEndereco = new Endereco('Uma Cidade', 'Um Bairro', 'Uma Rua', '123');
$outroEndereco = new Endereco('Outra Cidade', 'Outro Bairro', 'Outra Rua', '555');
$umEndereco->cidade = "Cidade 2";
echo $umEndereco->cidade;