3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $string = '<?php echo $a ?? 2; echo $a ?? $b ?? 7; '; $tokens = token_get_all($string); foreach ($tokens as $i => $token) { echo "$i : "; if (is_array($token) === false) { echo $token; } else { echo token_name($token[0]).' => '.str_replace(PHP_EOL, '\n', $token[1]); } echo PHP_EOL; }
Output for 7.0.0 - 7.2.0
0 : T_OPEN_TAG => <?php\n 1 : T_ECHO => echo 2 : T_WHITESPACE => 3 : T_VARIABLE => $a 4 : T_WHITESPACE => 5 : T_COALESCE => ?? 6 : T_WHITESPACE => 7 : T_LNUMBER => 2 8 : ; 9 : T_WHITESPACE => \n 10 : T_ECHO => echo 11 : T_WHITESPACE => 12 : T_VARIABLE => $a 13 : T_WHITESPACE => 14 : T_COALESCE => ?? 15 : T_WHITESPACE => 16 : T_VARIABLE => $b 17 : T_WHITESPACE => 18 : T_COALESCE => ?? 19 : T_WHITESPACE => 20 : T_LNUMBER => 7 21 : ; 22 : T_WHITESPACE => \n
Output for 5.3.19 - 5.6.28
0 : T_OPEN_TAG => <?php\n 1 : T_ECHO => echo 2 : T_WHITESPACE => 3 : T_VARIABLE => $a 4 : T_WHITESPACE => 5 : ? 6 : ? 7 : T_WHITESPACE => 8 : T_LNUMBER => 2 9 : ; 10 : T_WHITESPACE => \n 11 : T_ECHO => echo 12 : T_WHITESPACE => 13 : T_VARIABLE => $a 14 : T_WHITESPACE => 15 : ? 16 : ? 17 : T_WHITESPACE => 18 : T_VARIABLE => $b 19 : T_WHITESPACE => 20 : ? 21 : ? 22 : T_WHITESPACE => 23 : T_LNUMBER => 7 24 : ; 25 : T_WHITESPACE => \n