bug48770.phpt 1014 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. static $avoid_crash = 0;
  24. if ($avoid_crash++ == 1) {
  25. print "This method shouldn't be called when using parent::func!\n";
  26. return;
  27. }
  28. call_user_func_array(array($this, 'parent::func'), array($str));
  29. }
  30. private function func2($str) {
  31. var_dump(__METHOD__ .': '. $str);
  32. }
  33. protected function func3($str) {
  34. var_dump(__METHOD__ .': '. $str);
  35. }
  36. }
  37. class C extends B {
  38. public function func($str) {
  39. parent::func($str);
  40. }
  41. }
  42. $c = new C;
  43. $c->func('This should work!');
  44. ?>
  45. --EXPECT--
  46. string(26) "A::func: This should work!"