3v4l.org

run code in 300+ PHP versions simultaneously
<?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.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
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.5.0 - 5.5.38, 5.6.0 - 5.6.40
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

preferences:
239.43 ms | 403 KiB | 330 Q