bug40398.phpt 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. --TEST--
  2. Bug #40398 (parent and self callback functions erroneously called statically)
  3. --FILE--
  4. <?php
  5. class Base
  6. {
  7. function __construct($msg)
  8. {
  9. echo __METHOD__ . "($msg)\n";
  10. }
  11. }
  12. class Derived_1 extends Base
  13. {
  14. public function __construct()
  15. {
  16. $args = func_get_args();
  17. call_user_func_array(array($this, 'Base::__construct'), $args);
  18. }
  19. }
  20. class Derived_2 extends Base
  21. {
  22. public function __construct()
  23. {
  24. $args = func_get_args();
  25. call_user_func_array(array($this, 'parent::__construct'), $args);
  26. }
  27. }
  28. class Derived_3 extends Base
  29. {
  30. public function __construct()
  31. {
  32. $args = func_get_args();
  33. call_user_func_array('Base::__construct', $args);
  34. }
  35. }
  36. class Derived_4 extends Base
  37. {
  38. public function __construct()
  39. {
  40. $args = func_get_args();
  41. call_user_func_array('parent::__construct', $args);
  42. }
  43. }
  44. class Derived_5 extends Base
  45. {
  46. public function __construct()
  47. {
  48. $args = func_get_args();
  49. call_user_func_array(array('Base', '__construct'), $args);
  50. }
  51. }
  52. class Derived_6 extends Base
  53. {
  54. public function __construct()
  55. {
  56. $args = func_get_args();
  57. call_user_func_array(array('parent', '__construct'), $args);
  58. }
  59. }
  60. new Derived_1('1');
  61. new Derived_2('2');
  62. new Derived_3('3');
  63. new Derived_4('4');
  64. new Derived_5('5');
  65. new Derived_6('6');
  66. ?>
  67. --EXPECT--
  68. Base::__construct(1)
  69. Base::__construct(2)
  70. Base::__construct(3)
  71. Base::__construct(4)
  72. Base::__construct(5)
  73. Base::__construct(6)