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 = get_error_handler(); set_error_handler(function() use ($ab) { var_dump($ab); print 123;} ); echo $a;
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
Output for git.master, git.master_jit
object(Closure)#1 (4) { ["name"]=> string(22) "{closure:/in/6MFMD:13}" ["file"]=> string(9) "/in/6MFMD" ["line"]=> int(13) ["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:
32.12 ms | 2778 KiB | 4 Q