[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получить список явно не объявленных свойств класса
Ronder
Здравствуйте!
Есть пустой класс:


class Test
{

}



Создаём его экземпляр и наполняем свойствами:


$t = new Test;
$t->var = "привет";
$t->var2 = "пока";


Можно ли как-то из класса вывести список всех таких вот свойств, которые в классе явно не объявлены?
Заранее благодарен за помощь!



Спустя 9 минут, 52 секунды (5.10.2011 - 23:13) Winston написал(а):
А так ?
class Test
{
private $arg = array();

function __set($var, $val)
{
$this->arg[$var] = $val;
}
}


$t = new Test;
$t->var = "привет";
$t->var2 = "пока";

print_r($t);

Спустя 8 минут, 15 секунд (5.10.2011 - 23:21) killer8080 написал(а):

Спустя 8 часов, 32 минуты, 16 секунд (6.10.2011 - 07:53) linker написал(а):
Значитс так. В классе поля либо должны быть объявлены, либо в случае динамических полей используется одно поле + __set(), __get(), ....
class A
{
protected $props = array();
public function __set($name, $value)
{
$this->props[$name] = $value;
}
public function __get($name)
{
return array_key_exists($name, $this->props) ? $this->props[$name] : null;
}
public function __isset($name)
{
return array_key_exists($this->props[$name]);
}
public function __unset($name)
{
if (array_key_exists($this->props[$name]))
unset($this->props[$name]);
}
public function getProps()
{
return $this->props;
}
}


$a = new A();
$a->a = 1;
print_r($a->getProps());

Спустя 2 дня, 3 часа, 19 минут, 31 секунда (8.10.2011 - 11:13) Ronder написал(а):
Спасибо, коллеги! Очень помогли!

Спустя 4 дня, 9 часов, 43 минуты (12.10.2011 - 20:56) Guest написал(а):
используем stdClass не морочим голову другим smile.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.