access_modifiers_011.phpt 649 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. --TEST--
  2. __call() for private/protected methods
  3. --FILE--
  4. <?php
  5. class A {
  6. private $var1 = 'var1 value';
  7. protected $var2 = 'var2 value';
  8. private function func1()
  9. {
  10. return "in func1";
  11. }
  12. protected function func2()
  13. {
  14. return "in func2";
  15. }
  16. public function __get($var)
  17. {
  18. return $this->$var;
  19. }
  20. public function __call($func, array $args = array())
  21. {
  22. return call_user_func_array(array($this, $func), $args);
  23. }
  24. }
  25. $a = new A();
  26. echo $a->var1,"\n";
  27. echo $a->var2,"\n";
  28. echo $a->func1(),"\n";
  29. echo $a->func2(),"\n";
  30. ?>
  31. --EXPECT--
  32. var1 value
  33. var2 value
  34. in func1
  35. in func2