1
resposta

Solução que encontrei para o desafio __set()

Minha solução para o desafio __set()

Endereço.php

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

endereços.php

$outroEndereco->cidade = 'Porto Alegre'; $outroEndereco->bairro = 'Menino Deus';

echo PHP_EOL . "Endereço após alteração:" . PHP_EOL; echo $outroEndereco;

Tentei colocar no link das aulas, mas não estava editável. Aqui funcionou assim, mas confesso que o entendimento deste métido ficou um pouco obscuro.

1 resposta

Oi Patricia, tudo bem?

Fico feliz em saber que você encontrou uma solução para o desafio __set() do curso "Avançando com Orientação a Objetos com PHP: Herança, Polimorfismo e Interfaces".

Pelo que entendi, você criou um método __set() na classe Endereço que permite a atribuição de valores a atributos que não foram definidos previamente na classe. E no arquivo endereços.php, você utilizou esse método para atribuir valores às propriedades cidade e bairro do objeto $outroEndereco.

É importante lembrar que o método __set() é chamado sempre que tentamos atribuir um valor a um atributo que não existe ou que não é acessível. Ele recebe como parâmetros o nome do atributo e o valor que queremos atribuir.

Sua solução parece estar funcionando corretamente.

Um abraço e bons estudos.