Получение private, protected методов класса/объекта

Anarki

Новичок
Получение private, protected свойств класса/объекта

Возможно ли получить список private, protected свойств объекта и их значений? Отдельно, т.е. не в самом классе, а в каком то участке кода. И как это сделать?

Пробовал использовать get_object_vars(), ReflectionClass и ReflectionProperty.

-~{}~ 26.08.05 17:30:

Важны значения этих свойств
 

crocodile2u

http://vbolshov.org.ru
Свойств или методов? Определись плз.
Насчет свойств:

PHP:
class test {
	private $private_var = "Private";
	public function __get($name)
	{
		return isset($this->$name) ? $this->$name : "No such variable $name";
	}
}

$t = new test();

echo $t->private_var;

// output:
// Private
 

Anarki

Новичок
Прошу прощения, имелись ввиду свойства, очепятки.

-~{}~ 26.08.05 18:49:

crocodile2u
Этот код не работает.
Fatal error: Cannot access private property test::$private_var in C:\www\php5-oop\private.php on line 13

Желательно без модификации кода класса.

-~{}~ 26.08.05 18:52:

Версия php 5.0.4
Может в этой версии перехват идет позже, чем проверка закрытости свойства...
 

crocodile2u

http://vbolshov.org.ru
у меня 5.1.0b3 - работает. Но я вообще-то был этим удивлен :)

Даже получилось приватный метод вызвать с пом. __call().

А вот без модификации - это вряд ли.
 
Сверху