Bom dia! Estou recebendo o seguinte erro ao executar o método __get:
Allowed memory size of 134217728 bytes exhausted.
O erro está dando na linha do __get.
Minha classe Endereco:
<?php
namespace Alura\Banco\Modelo;
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 recuperaCidade()
{
return $this->cidade;
}
public function recuperaBairro()
{
return $this->bairro;
}
public function recuperaRua()
{
return $this->rua;
}
public function recuperaNumero(){
return $this->numero;
}
public function __toString() : string
{
return "{$this->rua}, {$this->numero}, {$this->bairro}, {$this->cidade}";
}
public function __get(string $nomeAtributo) {
$metodo = "recupera" . ucfirst($nomeAtributo); //uppercase first
return $this->$metodo;
}
public function __set($nomeAtributo, $value): void {
$metodo = 'altera' . ucfirst($nomeAtributo);
$this->$metodo($value);
//usamos o __set para acessar uma propriedade privada sem precisar chamar declaradamente o setter correspondente. Neste caso o __set traduz um $umEndereco->cidade para $umEndereco->alteraCidade
}
}