--TEST-- __call() for private/protected methods --FILE-- $var; } public function __call($func, array $args = array()) { return call_user_func_array(array($this, $func), $args); } } $a = new A(); echo $a->var1,"\n"; echo $a->var2,"\n"; echo $a->func1(),"\n"; echo $a->func2(),"\n"; ?> --EXPECT-- var1 value var2 value in func1 in func2