Annotation of embedaddon/php/ext/standard/tests/general_functions/bug40398.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #40398 (parent and self callback functions erroneously called statically)
! 3: --FILE--
! 4: <?php
! 5:
! 6: class Base
! 7: {
! 8: function __construct($msg)
! 9: {
! 10: echo __METHOD__ . "($msg)\n";
! 11: }
! 12: }
! 13:
! 14: class Derived_1 extends Base
! 15: {
! 16: public function __construct()
! 17: {
! 18: $args = func_get_args();
! 19: call_user_func_array(array($this, 'Base::__construct'), $args);
! 20: }
! 21: }
! 22:
! 23: class Derived_2 extends Base
! 24: {
! 25: public function __construct()
! 26: {
! 27: $args = func_get_args();
! 28: call_user_func_array(array($this, 'parent::__construct'), $args);
! 29: }
! 30: }
! 31:
! 32: class Derived_3 extends Base
! 33: {
! 34: public function __construct()
! 35: {
! 36: $args = func_get_args();
! 37: call_user_func_array('Base::__construct', $args);
! 38: }
! 39: }
! 40:
! 41: class Derived_4 extends Base
! 42: {
! 43: public function __construct()
! 44: {
! 45: $args = func_get_args();
! 46: call_user_func_array('parent::__construct', $args);
! 47: }
! 48: }
! 49:
! 50: class Derived_5 extends Base
! 51: {
! 52: public function __construct()
! 53: {
! 54: $args = func_get_args();
! 55: call_user_func_array(array('Base', '__construct'), $args);
! 56: }
! 57: }
! 58:
! 59: class Derived_6 extends Base
! 60: {
! 61: public function __construct()
! 62: {
! 63: $args = func_get_args();
! 64: call_user_func_array(array('parent', '__construct'), $args);
! 65: }
! 66: }
! 67:
! 68: new Derived_1('1');
! 69: new Derived_2('2');
! 70: new Derived_3('3');
! 71: new Derived_4('4');
! 72: new Derived_5('5');
! 73: new Derived_6('6');
! 74:
! 75: ?>
! 76: ===DONE===
! 77: --EXPECTF--
! 78: Base::__construct(1)
! 79: Base::__construct(2)
! 80: Base::__construct(3)
! 81: Base::__construct(4)
! 82: Base::__construct(5)
! 83: Base::__construct(6)
! 84: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>