3v4l.org

run code in 300+ PHP versions simultaneously
<?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 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
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.33
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.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40
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.3.11, 4.4.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] => )

preferences:
304.64 ms | 402 KiB | 456 Q