3v4l.org

run code in 200+ PHP versions simultaneously
<?php function exception_error_handler($severity, $message, $file, $line) { if (!(error_reporting() & $severity)) { // This error code is not included in error_reporting return; } throw new ErrorException($message, 0, $severity, $file, $line); } set_error_handler("exception_error_handler"); $o=new StdClass(); $o->f=function(){ echo "i ran!"; }; try{ $o->f(); }catch(Throwable $ex){ echo 'didn\'t work: $o->f()',PHP_EOL; } try{ call_user_func([$o,'f']); }catch(Throwable $ex){ echo 'didn\'t work: call_user_func([$o,\'f\'])',PHP_EOL; } try{ get_object_vars($o)['f'](); }catch(Throwable $ex){var_dump($ex); echo 'didn\'t work: get_object_vars($o)[\'f\']()',PHP_EOL; }

Shows result from various feature-branches currently under review from the php developers. Contact me to have additional branches featured.

Output for branch php-master
didn't work: $o->f() didn't work: call_user_func([$o,'f']) i ran!
Output for branch php-master+opcache
didn't work: $o->f() didn't work: call_user_func([$o,'f']) i ran!
Output for branch php-master+jit
didn't work: $o->f() didn't work: call_user_func([$o,'f']) i ran!
Output for Typed properties v2
didn't work: $o->f() didn't work: call_user_func([$o,'f']) i ran!
Output for Arrow functions
/bin/php-rfc-arrow_functions: error while loading shared libraries: libicui18n.so.58: cannot open shared object file: No such file or directory
Process exited with code 127.
Output for Object typehint
/bin/php-rfc-object-typehint: error while loading shared libraries: libmcrypt.so.4: cannot open shared object file: No such file or directory
Process exited with code 127.
Output for Array change keys
/bin/php-rfc-array_change_keys: error while loading shared libraries: libmcrypt.so.4: cannot open shared object file: No such file or directory
Process exited with code 127.
Output for Lexical anon
/bin/php-rfc-lexical-anon: error while loading shared libraries: libmcrypt.so.4: cannot open shared object file: No such file or directory
Process exited with code 127.

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