Re: Private properties, Inheritance, Reflection (5.3)
| From: | Johannes Schlüter | Date: | Fri, 03 Apr 2009 23:53:16 +0000 |
| Subject: | Re: Private properties, Inheritance, Reflection (5.3) | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-43619@lists.php.net to get a copy of this message | ||
On Fri, 2009-04-03 at 22:37 +0200, Roman Borschel wrote:
> Given the following simple classes
>
> class Foo {
> private $foo = 'value';
> public function getFoo() { return $this->foo; }
> }
> class Bar extends Foo {}
>
> Obviously, given an instance of Bar, say $bar, $bar->getFoo() returns
> 'value'.
>
> Now the question: How do I get at this value using reflection, given
> an instance of Bar?
class Foo { private $foo = "value"; }
class Bar extends Foo {}
$f = new Foo;
// we have to know the context, as there might be multiple foo properties
$r = new ReflectionProperty("Foo", "foo");
$r->setAccessible(true);
var_dump($r->getValue($f));
works for me.
johannes