Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exercício __set

Classe

<?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 __get($Atributo)
    {
        $Atributo = ucfirst($Atributo);
        $devolve = $this->$Atributo;
        echo $devolve;
    }

    public function __set($Atributo, string $Nome)
    {
        $this->$Atributo = $Nome;

    }

    public function __toString(): string
    {
        return "{$this->Rua} {$this->Numero}, {$this->Bairro}, {$this->Cidade}";
    }
}

Arquivo PHP

<?php

require_once "autoload.php";

use Alura\Banco\Modelo\Endereco;

$Endereco1 = new Endereco("Campo Limpo Paulista", "JD Corcovado", "Mauricio Grobman", "107");
$Endereco2 = new Endereco("Varzea Paulista", "JD America IV", "AV. Piqueri", "1080");

/* echo $Endereco1 . PHP_EOL;
echo $Endereco2 . PHP_EOL; */

echo $Endereco1->Proprietario = "Gustavo";

var_dump($Endereco1);
2 respostas

Olá, Gustavo. Algumas observações:

  1. Sempre que for colocar código aqui no fórum, coloque entre 3 crases (`). Assim o código fica formatado. Já editei aqui pra você.
  2. É comum que em PHP as propriedades comecem com letra minúscula, no padrão camelCase. :-) Isso não afeta no funcionamento, mas garante que você já esteja habituado a como normalmente código PHP é escrito. Dá uma olhada na PSR-12.
  3. No seu método __set você tipou o parâmetro $Nome, mas não o $Atributo. Algum motivo especial pra isso? Eu também adicionaria o tipo nele. :-)
  4. Seu atributo $Bairro está tipado como String (com "S" maiúsculo). Isso vai fazer o PHP buscar uma classe chamada String. O tipo string é com letra minúscula.

Fora isso, show de bola, Gustavo. Parabéns e bons estudos!

solução!

Muito obrigado pelas observações! E eu já realzei as alterações! Os cursos são excelentes, novamente muito obrigado!