3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php class foo { var $my_public = array(); //forward php4 to constructor function foo($one, $two) { $this->my_public[] = 'php4 constructor'; return $this->__construct($one, $two); } //constructor php5 function __construct($one, $two) { $this->my_public[] = 'php5 constructor'; $this->my_public[] = $one; $this->my_public[] = $two; register_shutdown_function(array(&$this, "__destruct")); } function dump() { print_r($this->my_public); } function __destruct () {} } $test = new foo(); $test->dump();
Output for 7.1.0
Fatal error: Uncaught ArgumentCountError: Too few arguments to function foo::__construct(), 0 passed in /in/m5sLE on line 32 and exactly 2 expected in /in/m5sLE:15 Stack trace: #0 /in/m5sLE(32): foo->__construct() #1 {main} thrown in /in/m5sLE on line 15
Process exited with code 255.
Output for 7.0.0 - 7.0.14
Warning: Missing argument 1 for foo::__construct(), called in /in/m5sLE on line 32 and defined in /in/m5sLE on line 15 Warning: Missing argument 2 for foo::__construct(), called in /in/m5sLE on line 32 and defined in /in/m5sLE on line 15 Notice: Undefined variable: one in /in/m5sLE on line 18 Notice: Undefined variable: two in /in/m5sLE on line 19 Array ( [0] => php5 constructor [1] => [2] => )
Output for 5.1.3 - 5.6.28
Strict Standards: Redefining already defined constructor for class foo in /in/m5sLE on line 15 Warning: Missing argument 1 for foo::__construct(), called in /in/m5sLE on line 32 and defined in /in/m5sLE on line 15 Warning: Missing argument 2 for foo::__construct(), called in /in/m5sLE on line 32 and defined in /in/m5sLE on line 15 Notice: Undefined variable: one in /in/m5sLE on line 18 Notice: Undefined variable: two in /in/m5sLE on line 19 Array ( [0] => php5 constructor [1] => [2] => )
Output for 5.1.0 - 5.1.2
Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/m5sLE on line 4 Strict Standards: Redefining already defined constructor for class foo in /in/m5sLE on line 15 Warning: Missing argument 1 for foo::__construct(), called in /in/m5sLE on line 32 and defined in /in/m5sLE on line 15 Warning: Missing argument 2 for foo::__construct(), called in /in/m5sLE on line 32 and defined in /in/m5sLE on line 15 Notice: Undefined variable: one in /in/m5sLE on line 18 Notice: Undefined variable: two in /in/m5sLE on line 19 Array ( [0] => php5 constructor [1] => [2] => )
Output for 5.0.0 - 5.0.5
Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/m5sLE on line 4 Strict Standards: Redefining already defined constructor for class foo in /in/m5sLE on line 15 Warning: Missing argument 1 for foo::__construct() in /in/m5sLE on line 15 Warning: Missing argument 2 for foo::__construct() in /in/m5sLE on line 15 Array ( [0] => php5 constructor [1] => [2] => )
Output for 4.3.0 - 4.4.9
Warning: Missing argument 1 for foo() in /in/m5sLE on line 7 Warning: Missing argument 2 for foo() in /in/m5sLE on line 7 Array ( [0] => php4 constructor [1] => php5 constructor [2] => [3] => )