bug48770_3.phpt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. Bug #48770 (call_user_func_array() fails to call parent from inheriting class)
  3. --XFAIL--
  4. See Bug #48770
  5. --FILE--
  6. <?php
  7. class A {
  8. public function func($str) {
  9. var_dump(__METHOD__ .': '. $str);
  10. }
  11. private function func2($str) {
  12. var_dump(__METHOD__ .': '. $str);
  13. }
  14. protected function func3($str) {
  15. var_dump(__METHOD__ .': '. $str);
  16. }
  17. private function func22($str) {
  18. var_dump(__METHOD__ .': '. $str);
  19. }
  20. }
  21. class B extends A {
  22. public function func($str) {
  23. call_user_func_array(array($this, 'self::func2'), array($str));
  24. call_user_func_array(array($this, 'self::func3'), array($str));
  25. call_user_func_array(array($this, 'self::inexistent'), array($str));
  26. }
  27. private function func2($str) {
  28. var_dump(__METHOD__ .': '. $str);
  29. }
  30. protected function func3($str) {
  31. var_dump(__METHOD__ .': '. $str);
  32. }
  33. }
  34. class C extends B {
  35. public function func($str) {
  36. parent::func($str);
  37. }
  38. }
  39. $c = new C;
  40. $c->func('This should work!');
  41. ?>
  42. --EXPECTF--
  43. string(27) "B::func2: This should work!"
  44. string(27) "B::func3: This should work!"
  45. Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'B' does not have a method 'inexistent' in %s on line %d