3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class Foo { public function __construct($a, $b) { var_dump($a, $b); } } class Bar extends Foo{ public function __construct($a) { var_dump($a); parent::__construct($a); } } class Baz extends Bar{ public function __construct($a, $b) { Foo::__construct($a, $b); parent::__construct($a); } } $baz = new Baz("foo", "bar");
based on MLBG7
Output for 7.1.0 - 7.2.0
string(3) "foo" string(3) "bar" string(3) "foo" Fatal error: Uncaught ArgumentCountError: Too few arguments to function Foo::__construct(), 1 passed in /in/LOhOL on line 14 and exactly 2 expected in /in/LOhOL:4 Stack trace: #0 /in/LOhOL(14): Foo->__construct('foo') #1 /in/LOhOL(22): Bar->__construct('foo') #2 /in/LOhOL(26): Baz->__construct('foo', 'bar') #3 {main} thrown in /in/LOhOL on line 4
Process exited with code 255.
Output for 5.3.20 - 7.0.20
string(3) "foo" string(3) "bar" string(3) "foo" Warning: Missing argument 2 for Foo::__construct(), called in /in/LOhOL on line 14 and defined in /in/LOhOL on line 4 Notice: Undefined variable: b in /in/LOhOL on line 6 string(3) "foo" NULL