- var_dump: documentation ( source)
<?php
class Foo
{
public $foo = 'foo';
protected $bar = 'bar';
}
class FooProxy extends Some
{
private $wrapped;
// ...
private static $publicProperties = array('foo' => true);
public function __construct(Foo $wrapped)
{
$this->wrapped = $wrapped;
}
public function & __get($name)
{
if (isset(self::$publicProperties[$name]))
{
return $this->wrapped->$name;
}
return PublicAccessEmulator::get($this->wrapped, $name);
}
}
class PublicAccessEmulator
{
public static function & get($object, $name)
{
return $object->$name;
}
}
$foo = new FooProxy(new Foo());
var_dump($foo->foo);
var_dump($foo->bar);