3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class A { var $__row = null; function A($row) { $this->__row = $row; } } class B extends A { var $__module_id; function B($row, $module_id) { parent::A($row); $this->__module_id = $module_id; } } class C extends B { function C($row) { parent::B($row, 'common'); } } class D extends C { function D($row) { parent::B($row, 'something'); // ATTENTION - Here is "::B" not "::C" } } $d = new D('dummy'); var_dump($d);
based on R8X10
Output for 7.0.0 - 7.2.11
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; A has a deprecated constructor in /in/dfkg3 on line 3 Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; B has a deprecated constructor in /in/dfkg3 on line 10 Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; C has a deprecated constructor in /in/dfkg3 on line 19 Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; D has a deprecated constructor in /in/dfkg3 on line 25 object(D)#1 (2) { ["__module_id"]=> string(9) "something" ["__row"]=> string(5) "dummy" }
Output for 5.5.0 - 5.6.28
object(D)#1 (2) { ["__module_id"]=> string(9) "something" ["__row"]=> string(5) "dummy" }