Return to bug40398.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / general_functions |
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===