1
resposta

Exercício __set

No meu funcionou assim ,retirei do código /**

  • Class Endereco

  • @package Alura\Banco\Modelo

  • @property-read string $cidade

  • @property-read string $bairro

  • @property-read string $rua

  • @property-read string $numero

    */

para que funcionasse.

<?php

namespace Alura\Banco\Model;



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 getCidade(): string
    {
        return $this->cidade;
    }


    public function setCidade(string $cidade): void
    {
        $this->cidade = $cidade;
    }


    public function getBairro(): string
    {
        return $this->bairro;
    }

    public function setBairro(string $bairro): void
    {
        $this->bairro = $bairro;
    }


    public function getRua(): string
    {
        return $this->rua;
    }

    public function setRua(string $rua): void
    {
        $this->rua = $rua;
    }


    public function getNumero(): string
    {
        return $this->numero;
    }

    public function setNumero(string $numero): void
    {
        $this->numero = $numero;
    }


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

    public function __get($nomeDoMetodoASerChamado)
    {

        return $this->$nomeDoMetodoASerChamado.PHP_EOL;
    }
    public function __set($nomeDoMetodoASerChamado, $valorAAtribuir)
    {
        return $this->$nomeDoMetodoASerChamado=$valorAAtribuir.PHP_EOL;

    }

<?php

require "autoload.php";


use Alura\Banco\Model\Endereco;

$umEndereco= new Endereco("indaiatuba","qualquer","uma","dois");

echo $umEndereco->cidade;

$umEndereco->rua="outra";

echo $umEndereco->rua;
1 resposta

Não entendi o motivo de você retirar os comentários, Rafael.

E você tá chamando o parâmetro de $nomeDoMetodoASerChamado quando na verdade o que você recebe é o nome da propriedade, e não do método.

Mas fora essas observações, está correto. :-)