Fiz da seguinte forma
<?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(): string
{
return $this->cidade;
}
public function recuperaBairro(): string
{
return $this->bairro;
}
public function recuperaRua(): string
{
return $this->rua;
}
public function recuperaNumero(): string
{
return $this->numero;
}
public function alteraCidade(string $cidade): void
{
$this->cidade = $cidade;
}
public function alteraBairro(string $bairro): void
{
$this->bairro = $bairro;
}
public function alteraRua(string $rua): void
{
$this->rua = $rua;
}
public function alteraNumero(string $numero): void
{
$this->numero = $numero;
}
public function __get($atributo):string
{
return $this->{'recupera'.ucfirst($atributo)}();
}
public function __set($atributo, $valor):void
{
$this->{'altera'.ucfirst($atributo)}($valor);
}
}
É errado fazer dessa forma ?
return $this->{'recupera'.ucfirst($atributo)}();