3v4l.org

run code in 300+ PHP versions simultaneously
<?php header('Content-Type: text/html'); /** * Nicely prints human-readable information about a value. * @param mixed $value The value to print. * @param bool $return (Optional) Return printed HTML instead of writing it out (default is false). */ function nice_r($value, $return = false){ if($return)ob_start(); _nice_r_v($value, 'nice_r'); if($return)return ob_get_clean(); } function _nice_r_v($var, $class='', $id=''){ static $BEENTHERE = '__NICE_R_INFINITE_RECURSION_PROTECT__'; $class .= ' nice_r_t_'.gettype($var); ?><div id="<?php echo $id; ?>" class="<?php echo $class; ?>"><?php if(is_array($var)){ if(isset($var[$BEENTHERE])){ ?><span class="nice_r_ir">Infinite Recursion Detected!</span><?php }else{ $var[$BEENTHERE] = true; foreach($var as $k=>$v) if($k!==$BEENTHERE) _nice_r_kv($k, $v); unset($var[$BEENTHERE]); } }elseif(is_object($var)){ if(isset($var->$BEENTHERE)){ ?><span class="nice_r_ir">Infinite Recursion Detected!</span><?php }else{ $var->$BEENTHERE = true; foreach((array)$var as $k=>$v) if($k!==$BEENTHERE) _nice_r_kv($k, $v); unset($var->$BEENTHERE); } }else{ _nice_r_kv('', $var); } ?></div><?php } function _nice_r_h($text){ return htmlspecialchars($text, ENT_QUOTES, 'UTF-8'); } function _nice_r_kv($key, $val){ static $id = 0; $id++; $p = ''; $d = ''; $t = gettype($val); $is_hash = ($t=='array') || ($t=='object'); switch($t){ case 'boolean': $p = $val ? 'TRUE' : 'FALSE'; break; case 'integer': case 'double': $p = (string)$val; break; case 'string': $d .= ', '.strlen($val).' characters'; $p = $val; break; case 'resource': $d .= ', '.get_resource_type($val).' type'; $p = (string)$val; break; case 'array': $d .= ', '.count($val).' elements'; break; case 'object': $d .= ', '.get_class($val).', '.count(get_object_vars($val)).' properties'; break; } ?><a href="javascript:;" onclick="nice_r_toggle('<?php echo $id; ?>');"> <span class="nice_r_a<?php if(!$is_hash)echo ' nice_r_ad'; ?>" id="nice_r_a<?php echo $id; ?>">&#9658;</span> <span class="nice_r_k"><?php echo _nice_r_h($key); ?></span> <span class="nice_r_d">(<?php echo '<span>'.ucwords($t).'</span>'.$d; ?>)</span> <span class="nice_r_p nice_r_t_<?php echo $t; ?>"><?php echo _nice_r_h($p); ?></span> </a><?php if($is_hash){ _nice_r_v($val, 'nice_r_v', 'nice_r_v'.$id); } } ?><!DOCTYPE html> <html dir="ltr" lang="en-US"> <head> <link rel="stylesheet" type="text/css" href="https://raw.github.com/uuf6429/nice_r/master/nice_r.css"/> <script type="text/javascript" src="https://raw.github.com/uuf6429/nice_r/master/nice_r.js"></script> </head><body><?php nice_r($_SERVER); ?></body> </html>
Output for git.master, git.master_jit, rfc.property-hooks
<!DOCTYPE html> <html dir="ltr" lang="en-US"> <head> <link rel="stylesheet" type="text/css" href="https://raw.github.com/uuf6429/nice_r/master/nice_r.css"/> <script type="text/javascript" src="https://raw.github.com/uuf6429/nice_r/master/nice_r.js"></script> </head><body><div id="" class="nice_r nice_r_t_array"><a href="javascript:;" onclick="nice_r_toggle('1');"> <span class="nice_r_a nice_r_ad" id="nice_r_a1">&#9658;</span> <span class="nice_r_k">TERM</span> <span class="nice_r_d">(<span>String</span>, 5 characters)</span> <span class="nice_r_p nice_r_t_string">xterm</span> </a><a href="javascript:;" onclick="nice_r_toggle('2');"> <span class="nice_r_a nice_r_ad" id="nice_r_a2">&#9658;</span> <span class="nice_r_k">PATH</span> <span class="nice_r_d">(<span>String</span>, 13 characters)</span> <span class="nice_r_p nice_r_t_string">/usr/bin:/bin</span> </a><a href="javascript:;" onclick="nice_r_toggle('3');"> <span class="nice_r_a nice_r_ad" id="nice_r_a3">&#9658;</span> <span class="nice_r_k">LANG</span> <span class="nice_r_d">(<span>String</span>, 1 characters)</span> <span class="nice_r_p nice_r_t_string">C</span> </a><a href="javascript:;" onclick="nice_r_toggle('4');"> <span class="nice_r_a nice_r_ad" id="nice_r_a4">&#9658;</span> <span class="nice_r_k">SHELL</span> <span class="nice_r_d">(<span>String</span>, 7 characters)</span> <span class="nice_r_p nice_r_t_string">/bin/sh</span> </a><a href="javascript:;" onclick="nice_r_toggle('5');"> <span class="nice_r_a nice_r_ad" id="nice_r_a5">&#9658;</span> <span class="nice_r_k">MAIL</span> <span class="nice_r_d">(<span>String</span>, 16 characters)</span> <span class="nice_r_p nice_r_t_string">/var/mail/nobody</span> </a><a href="javascript:;" onclick="nice_r_toggle('6');"> <span class="nice_r_a nice_r_ad" id="nice_r_a6">&#9658;</span> <span class="nice_r_k">LOGNAME</span> <span class="nice_r_d">(<span>String</span>, 6 characters)</span> <span class="nice_r_p nice_r_t_string">nobody</span> </a><a href="javascript:;" onclick="nice_r_toggle('7');"> <span class="nice_r_a nice_r_ad" id="nice_r_a7">&#9658;</span> <span class="nice_r_k">USER</span> <span class="nice_r_d">(<span>String</span>, 6 characters)</span> <span class="nice_r_p nice_r_t_string">nobody</span> </a><a href="javascript:;" onclick="nice_r_toggle('8');"> <span class="nice_r_a nice_r_ad" id="nice_r_a8">&#9658;</span> <span class="nice_r_k">HOME</span> <span class="nice_r_d">(<span>String</span>, 4 characters)</span> <span class="nice_r_p nice_r_t_string">/tmp</span> </a><a href="javascript:;" onclick="nice_r_toggle('9');"> <span class="nice_r_a nice_r_ad" id="nice_r_a9">&#9658;</span> <span class="nice_r_k">PHP_SELF</span> <span class="nice_r_d">(<span>String</span>, 9 characters)</span> <span class="nice_r_p nice_r_t_string">/in/7Ga58</span> </a><a href="javascript:;" onclick="nice_r_toggle('10');"> <span class="nice_r_a nice_r_ad" id="nice_r_a10">&#9658;</span> <span class="nice_r_k">SCRIPT_NAME</span> <span class="nice_r_d">(<span>String</span>, 9 characters)</span> <span class="nice_r_p nice_r_t_string">/in/7Ga58</span> </a><a href="javascript:;" onclick="nice_r_toggle('11');"> <span class="nice_r_a nice_r_ad" id="nice_r_a11">&#9658;</span> <span class="nice_r_k">SCRIPT_FILENAME</span> <span class="nice_r_d">(<span>String</span>, 9 characters)</span> <span class="nice_r_p nice_r_t_string">/in/7Ga58</span> </a><a href="javascript:;" onclick="nice_r_toggle('12');"> <span class="nice_r_a nice_r_ad" id="nice_r_a12">&#9658;</span> <span class="nice_r_k">PATH_TRANSLATED</span> <span class="nice_r_d">(<span>String</span>, 9 characters)</span> <span class="nice_r_p nice_r_t_string">/in/7Ga58</span> </a><a href="javascript:;" onclick="nice_r_toggle('13');"> <span class="nice_r_a nice_r_ad" id="nice_r_a13">&#9658;</span> <span class="nice_r_k">DOCUMENT_ROOT</span> <span class="nice_r_d">(<span>String</span>, 0 characters)</span> <span class="nice_r_p nice_r_t_string"></span> </a><a href="javascript:;" onclick="nice_r_toggle('14');"> <span class="nice_r_a nice_r_ad" id="nice_r_a14">&#9658;</span> <span class="nice_r_k">REQUEST_TIME_FLOAT</span> <span class="nice_r_d">(<span>Double</span>)</span> <span class="nice_r_p nice_r_t_double">1351887037.0001</span> </a><a href="javascript:;" onclick="nice_r_toggle('15');"> <span class="nice_r_a nice_r_ad" id="nice_r_a15">&#9658;</span> <span class="nice_r_k">REQUEST_TIME</span> <span class="nice_r_d">(<span>Integer</span>)</span> <span class="nice_r_p nice_r_t_integer">1351887037</span> </a><a href="javascript:;" onclick="nice_r_toggle('16');"> <span class="nice_r_a" id="nice_r_a16">&#9658;</span> <span class="nice_r_k">argv</span> <span class="nice_r_d">(<span>Array</span>, 1 elements)</span> <span class="nice_r_p nice_r_t_array"></span> </a><div id="nice_r_v16" class="nice_r_v nice_r_t_array"><a href="javascript:;" onclick="nice_r_toggle('17');"> <span class="nice_r_a nice_r_ad" id="nice_r_a17">&#9658;</span> <span class="nice_r_k">0</span> <span class="nice_r_d">(<span>String</span>, 9 characters)</span> <span class="nice_r_p nice_r_t_string">/in/7Ga58</span> </a></div><a href="javascript:;" onclick="nice_r_toggle('18');"> <span class="nice_r_a nice_r_ad" id="nice_r_a18">&#9658;</span> <span class="nice_r_k">argc</span> <span class="nice_r_d">(<span>Integer</span>)</span> <span class="nice_r_p nice_r_t_integer">1</span> </a></div></body> </html>

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:
70.44 ms | 413 KiB | 8 Q