1
resposta

Exercício __set

Fala galera do forum!

Solução do exercício é o seguinte:

(Existem algumas diferenças no nome das propriedades dos exemplos aqui citados para as propriedades do vídeo!)

1 - Você vai precisar alterar as anotações que o professor pediu para implementar na classe, são essas daqui olha:

/**
 * Class Endereco
 *
 * @package SeuDominio\Banco\Modelo
 * @property-read string $rua
 * @property-read string $numero
 * @property-read string $pais
 * @property-read string $cidade
 * @property-read string $cep
 */
class Endereco
{ 
...
}

2 - Se olhar direitinho você vai quer que elas estão dizendo que a property (a propriedade) é apenas de leitura! Agora que vamos utilizar o método __set será necessário alterar as anotações de property-read para property:

/**
 * Class Endereco
 *
 * @package SeuDominio\Banco\Modelo
 * @property string $rua
 * @property string $numero
 * @property string $pais
 * @property string $cidade
 * @property string $cep
 */
class Endereco
{ 
...
}

3 - Agora vamos implementar o método mágico em questão:

public function __set(string $name, $value): void
    {
        $this->$name = $value;
    }

4 - Pronto! Só falta testar:

<?php

useSeuDominio\Banco\Modelo\Endereco;

$endereco = new Endereco('Rua dos Bolseiros', '1', 'Terra Média', 'Condado dos Hobbits', '12345');

echo "Antes de alterar: " . $endereco->cidade . PHP_EOL;

$endereco->cidade = 'Mordor';

echo "Depois de alterar: " . $endereco->cidade . PHP_EOL;

Saída

Antes de alterar: Condado dos Hobbits
Depois de alterar: Mordor

Obrigado por ler!

1 resposta

Olá Matheus, tudo bem?

Parabéns pela resolução do exercício, e por toda sua explicação para compartilhar sua solução aqui conosco! continue assim! Bons estudos!