Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

aniltonvieira

Métodos mágicos PHP

Recommended Posts

Olá rapazes, me tirem uma dúvida, estou começando a usar os métodos mágicos, como faço para retornar valores através do __get, quando os mesmos são inicializados no __construct, ou isso realmente é impossível?

 

<?php

class Chamado
{

    private static $id;
    private $dados = array();

    public function __construct($usuario, $descricao)
    {
        $dados['id'] = self::$id++;
        $dados['usuario'] = $usuario;
        $dados['descricao'] = $descricao;
    }

    public function __set($index, $value)
    {
        if ($index == 'observacao') {
            $this->setObservacao($value);
        } else {
            $this->dados[$index] = $value;
        }
    }

    public function setObservacao($value)
    {
        if (is_string($value)) {
            $this->dados['observacao'] = $value;
        } else {
            echo "Não pode";
        }
    }

    public function __get($index)
    {
        if (array_key_exists($index, $this->dados)) {
            return $this->dados[$index];
        }
    }

    public function __isset($property)
    {
        return isset($this->dados[$property]);
    }
}

$c1 = new Chamado('Júnior', 'Arrumar Teclado');
$c1->observacao = 'Olhar teclado!';
if (isset($c1->usuario)) {
    echo $c1->usuario;
} else {
    echo 'Valor não definido!';
}

print_r($c1->usuario);
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.