Métodos mágicos PHP
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);Discussão (0)
Carregando comentários...