Porque no haces un "registro" o un "almacén" de variables publicas? Algo así:
Código PHP:
class Algo {
private $stack = array();
public function __construct() {
// Vamos a poner una var "publica":
$this->stack['test'] = "algo";
}
public function __set( $name, $value ) {
$this->stack[$name] = $value;
}
public function __get( $name ) {
return $this->stack[$name];
}
}
$o = new Algo();
echo $o->test;
$o->prueba = "hola";
echo $o->prueba;
Saludos.