arquivo Enderecos.php :
<?php
use Alura\Banco\Modelo\Endereco;
require_once 'autoload.php';
$umEndereco = new Endereco('Porto Alegre', 'JD planalto', 'Rua A', '2');
$umEndereco->rua = 'mudança';
echo $umEndereco;
arquivo Endereco.php :
<?php
namespace Alura\Banco\Modelo;
/**
* Class Endereco
* @package Alura\Banco\Modelo
* @property-read string $cidade
* @property-read string $bairro
* @property-read string $rua
* @property-read string $numero
*/
Class Endereco
{
private string $cidade;
private string $bairro;
private string $rua;
private string $numero;
public function __construct($cidade, $bairro, $rua, $numero)
{
$this->cidade = $cidade;
$this->bairro = $bairro;
$this->rua = $rua;
$this->numero = $numero;
}
public function __set($nome, $valor)
{
$this->$nome = $valor;
}
Aqui funcionou, não sei se é a melhor forma, não achei necessário fazer uma função para alterar cada atributo de endereço