No meu funcionou assim ,retirei do código /**
Class Endereco
@package Alura\Banco\Modelo
@property-read string $cidade
@property-read string $bairro
@property-read string $rua
@property-read string $numero
*/
para que funcionasse.
<?php
namespace Alura\Banco\Model;
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 getCidade(): string
{
return $this->cidade;
}
public function setCidade(string $cidade): void
{
$this->cidade = $cidade;
}
public function getBairro(): string
{
return $this->bairro;
}
public function setBairro(string $bairro): void
{
$this->bairro = $bairro;
}
public function getRua(): string
{
return $this->rua;
}
public function setRua(string $rua): void
{
$this->rua = $rua;
}
public function getNumero(): string
{
return $this->numero;
}
public function setNumero(string $numero): void
{
$this->numero = $numero;
}
public function __toString():string
{
return "{$this->rua},{$this->numero},{$this->bairro},{$this->cidade}";
}
public function __get($nomeDoMetodoASerChamado)
{
return $this->$nomeDoMetodoASerChamado.PHP_EOL;
}
public function __set($nomeDoMetodoASerChamado, $valorAAtribuir)
{
return $this->$nomeDoMetodoASerChamado=$valorAAtribuir.PHP_EOL;
}
<?php
require "autoload.php";
use Alura\Banco\Model\Endereco;
$umEndereco= new Endereco("indaiatuba","qualquer","uma","dois");
echo $umEndereco->cidade;
$umEndereco->rua="outra";
echo $umEndereco->rua;