1
resposta

Exercicio_set

<?php

use Alura\Banco\Modelo\Endereco;

require_once 'autoload.php';

$umEndereco = new Endereco('Fagundes Varela','Qualquer','rua','71B');
$outroEndereco = new Endereco('Fagundes Varela','outro','rua','72B');

$umEndereco->bairro = 'novoBairro';
echo $umEndereco->bairro;

/* echo $umEndereco . PHP_EOL; */
<?php

namespace Alura\Banco\Modelo;

use Alura\Banco\Modelo\Pessoa;

/* 
    @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(string $cidade, string $bairro, string $rua, string $numero)
    {
        $this->cidade = $cidade;
        $this->bairro = $bairro;
        $this->rua = $rua;
        $this->numero = $numero;
    }

    /* Definindo os get e set */
    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->cidade;
    }

    public function __toString(): string
    {
        return "{$this->rua}, {$this->numero}, {$this->bairro}, {$this->cidade}";
    }

    public function __get(string $nomeAtributo)
    {

        $metodo = 'recupera' . ucfirst($nomeAtributo);
        return $this->$metodo();
    }

    public function __set(string $name, mixed $value)
    {
        echo "$name troca para $value = " . PHP_EOL;
        return  $this->$name = $value;
    }
}
1 resposta

Olá Gabriel, tudo bem?

Gostaria de pedir desculpas pela demora em responder o seu tópico.

Agradeço por compartilhar sua solução conosco e parabéns pela resolução do exercício, ficou muito bom! Parabéns!

Bons estudos :)