3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Bar {} class Baz {} function foo(array $bars) { $bars = (fn (Bar ...$bars) => $bars)(...$bars); var_dump($bars); } foo([new Bar, new Bar]); foo([new Bar, new Baz]);
Output for git.master_jit, git.master
array(2) { [0]=> object(Bar)#1 (0) { } [1]=> object(Bar)#2 (0) { } } Fatal error: Uncaught TypeError: {closure:foo():8}(): Argument #2 must be of type Bar, Baz given, called in /in/XmDOF on line 8 and defined in /in/XmDOF:8 Stack trace: #0 /in/XmDOF(8): {closure:foo():8}(Object(Bar), Object(Baz)) #1 /in/XmDOF(14): foo(Array) #2 {main} thrown in /in/XmDOF on line 8
Process exited with code 255.
Output for rfc.property-hooks
array(2) { [0]=> object(Bar)#1 (0) { } [1]=> object(Bar)#2 (0) { } } Fatal error: Uncaught TypeError: {closure}(): Argument #2 must be of type Bar, Baz given, called in /in/XmDOF on line 8 and defined in /in/XmDOF:8 Stack trace: #0 /in/XmDOF(8): {closure}(Object(Bar), Object(Baz)) #1 /in/XmDOF(14): foo(Array) #2 {main} thrown in /in/XmDOF on line 8
Process exited with code 255.

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
97.88 ms | 407 KiB | 5 Q