3v4l.org

run code in 500+ PHP versions simultaneously
<?php if (!function_exists('get_error_handler')) { function noop_error_handler() { } function get_error_handler(): ?callable { $handler = set_error_handler('noop_error_handler'); restore_error_handler(); return $handler; } } $handler = function (int $errno, string $errstr, ?string $errfile, ?int $errline) { echo "Error: " . $errstr . "\n"; }; set_error_handler($handler); $ab = (fn() => get_error_handler())(); set_error_handler(function() use ($ab) { var_dump($ab); print 123;} ); echo $a;
Output for git.master_jit, git.master
object(Closure)#1 (4) { ["name"]=> string(22) "{closure:/in/DR1qV:13}" ["file"]=> string(9) "/in/DR1qV" ["line"]=> int(13) ["parameter"]=> array(4) { ["$errno"]=> string(10) "<required>" ["$errstr"]=> string(10) "<required>" ["$errfile"]=> string(10) "<required>" ["$errline"]=> string(10) "<required>" } } 123
Output for rfc.property-hooks
object(Closure)#1 (1) { ["parameter"]=> array(4) { ["$errno"]=> string(10) "<required>" ["$errstr"]=> string(10) "<required>" ["$errfile"]=> string(10) "<required>" ["$errline"]=> string(10) "<required>" } } 123

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:
67.7 ms | 2758 KiB | 4 Q