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 8.4.1 - 8.4.14, 8.5.0 - 8.5.1
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 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28
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.

preferences:
100.35 ms | 410 KiB | 5 Q