3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a = (object) array(); $b = (object) array(); function object_handle($obj) { static $mask = 0, $offset; if (!$mask) { if (defined('HHVM_VERSION')) { $offset = 24; } else { $offset = 8; } $o = (object) array(); $mask = hexdec(substr(spl_object_hash($o), $offset, 8)); // check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below foreach (debug_backtrace(PHP_VERSION_ID >= 50400 ? DEBUG_BACKTRACE_IGNORE_ARGS : false) as $frame) { if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && in_array($frame['function'], array('ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush')) ) { $frame['line'] = 0; break; } } if (!empty($frame['line'])) { ob_start(); debug_zval_dump($o); $mask ^= substr(ob_get_clean(), 17); } } return hexdec(substr(spl_object_hash($obj), $offset, 8)) ^ $mask; } //ob_start('abc'); //ob_end_flush(); $o = array(); echo object_handle($o[]=(object) array()), "\n"; echo object_handle($o[]=(object) array()), "\n"; echo object_handle($o[]=(object) array()), "\n"; echo object_handle($o[]=(object) array()), "\n"; echo object_handle($o[]=(object) array()), "\n"; echo object_handle($o[]=(object) array()), "\n"; echo object_handle($o[]=(object) array()), "\n"; echo object_handle($b), "\n"; echo object_handle($a), "\n"; function abc() { global $a; isset($a) or $a = (object) array(); return object_handle($a); } ob_start('abc');
Output for git.master, git.master_jit, rfc.property-hooks
Warning: A non-numeric value encountered in /in/Bartu on line 31 3 Warning: A non-numeric value encountered in /in/Bartu on line 31 4 Warning: A non-numeric value encountered in /in/Bartu on line 31 5 Warning: A non-numeric value encountered in /in/Bartu on line 31 6 Warning: A non-numeric value encountered in /in/Bartu on line 31 7 Warning: A non-numeric value encountered in /in/Bartu on line 31 8 Warning: A non-numeric value encountered in /in/Bartu on line 31 9 Warning: A non-numeric value encountered in /in/Bartu on line 31 2 Warning: A non-numeric value encountered in /in/Bartu on line 31 1 7

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:
59.84 ms | 402 KiB | 8 Q