class Root
{
public function getProps()
{
// get props
}
}
class One extends Root
{
public $anyprop;
}
class Two extends One
{
public $propany;
}
$two = new Two;
$two->getProps();
/*
Массив
[One]
anyprop
[Two]
propany
*/
новые сообщения
ответы на мои сообщения
избранное
скрытые темы
случайный топик
ёбнуть всё в новых вкладках
Форум → Программирование → PHP для идиотов → PHP и ООП → Получить свойства объекта
Получить свойства объекта
-
-
Авг. 25, 2009, 5:09 п.п., спустя 48 минут 5 секунд
CTAPbIu_MABP, спасибо.class Root
{
public function getProps()
{
$result = array();
$cur_class = get_class($this);
$reflection = new ReflectionClass($cur_class);
$cur_props = get_class_vars($cur_class);
$props = $reflection->getProperties();
foreach ($props as $prop)
{
$class = $prop->getDeclaringClass()->getName();
$name = $prop->getName();
$value = $cur_props[$name];
$result[$class][][$name] = $value;
}
return $result;
}
}
class One extends Root
{
public $anyprop = 1;
}
class Two extends One
{
public $propany = 2;
public $anyprop = 3;
}
$two = new Two;
$two->propany = 4;
print_r($two->getProps());
Пожалуйста, авторизуйтесь, чтобы написать комментарий!