Well, here it is...
/*** CODE ***/ == original code
// COMMENT == refactoring
PHP Code:
define('C', 'f');
/*** define('S' . strtoupper(str_rot13(C)), 'c', 0); ***/
// str_rot13(C) == str_rot13('f') == 's'
// strtoupper('s') == 'S'
define('SS', 'c', 0);
$d = '2.';
$q = 'S';
/*** list ($x, $y) = array('p', 'gg'); ***/
$x = 'p';
$y = 'gg';
/*** $b = substr(str_rot13('a'.$x.'xy'.$y), 1, -4); ***/
// str_rot13('apxygg') == 'nckltt'
// substr('nckltt', 1, -4) == 'c'
$b = 'c';
/*** $c = ($e = 'a') . (25 / 2) . ($f = 22 | 45); ***/
// 22 | 45 == 63
$e = 'a';
$c = 'a12.563';
/*** ${'a1'.${((${'h'} = SS) ? ++$h : 0)}.'5'.(($g = 126 / 5) + ($g * 1.5))} = (float) ($d . ($f * 1.9047619047619)); ***/
// ((${'h'} = SS) ? ++$h : 0)
// $h = SS returns 'c', which isn't FALSE, so we increment $h by one, making it 'd'.
// Using ++$h means the if statement returns 'd', not 'c'.
$h = 'd';
// (($g = 126 / 5) + ($g * 1.5)) == 25.2 + 37.8 == 63
// ${'a1'.${'d'}.'5'. 63} == $a12.563
// $d . ($f * 1.9047619047619) == '2.' . 120 == '2.120'
// (float) 2.120 == (float) 2.12
$g = 25.2;
${'a12.563'} = (float) 2.12;
/*** $a = ${${$b}}; ***/
// ${$b} == $c
// ${$c} == ${'a12.563'}
$a = ${'a12.563'};
ob_start();
/*** var_dump(${$e}); ***/
// ${$e} == $a
var_dump($a); // Stores "float(2.12) " in the output buffer (note the ending space).
/*** eval('${S'.$q.'} = substr(strrchr(ob_get_contents(), substr(\'(\',0)), 1, -(int) substr($c, 2, -2)) . round(floor($$b));'); ***/
// '${S'.$q.'}' == '${SS}' == '$c'
// ob_get_contents() == "float(2.12) "
// 'substr(\'(\',0)' == '\'('\'
// 'strrchr("float(2.12) ", \'(\' )' == '"(2.12) "'
// '-(int) substr($c, 2, -2)' == '-(int) substr("a12.563", 2, -2 )' == '-2'
// 'round(floor($$b))' == 'round(floor($c))' == 'round(floor("a12.563"))' == '"0"'
eval('$c = substr("(2.12) ", 1, -2) . "0";');
ob_end_clean(); // Discards the output buffer's contents.
/*** echo $$b; ***/
echo $c;
So the answer is '2.120'. 
Someone else can post the next question, I'm all done PHPing for a while.
Bookmarks