Olá, Kelly! Tudo bem?
Desculpa a demora por um retorno.
O método __set()
é invocado quando se tenta atribuir um valor a um atributo inacessível diretamente. Ele recebe dois parâmetros: o nome do atributo e o valor a ser atribuído. No código fornecido, o método __set()
está implementado para simplesmente atribuir o valor ao atributo correspondente.
No código, há a criação de dois objetos Endereco
: $umEndereco
e $outroEndereco
. Em seguida, é atribuído o valor 'Osasco - SP' ao atributo cidade
do objeto $umEndereco
, através da expressão $umEndereco->cidade = 'Osasco - SP'
. No entanto, o código possui um exit()
logo em seguida, o que encerra a execução e impede a exibição dos resultados seguintes.
Para resolver esse problema, podemos remover a linha exit();
e executar o código novamente. Dessa forma, o valor 'Osasco - SP' será atribuído à propriedade cidade
do objeto $umEndereco
e o resultado será exibido corretamente.
Aqui está o código corrigido:
<?php
use Alura\Banco\Modelo\Endereco;
require_once 'autoload.php';
$umEndereco = new Endereco(
cidade:'Osasco',
bairro: 'Centro',
rua: 'Av. dos Autonomistas',
numero: '1022'
);
$outroEndereco = new Endereco(
cidade:'Barueri',
bairro: 'Alphaville',
rua: 'Primavera',
numero: '19'
);
$umEndereco->cidade = 'Osasco - SP';
echo $outroEndereco . PHP_EOL;
echo $umEndereco;
Espero ter ajudado. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓