3v4l.org

run code in 300+ PHP versions simultaneously
<?php abstract /** */ class /** */ C /** */ { } $php = <<<'EOT' <?php namespace AAA\BBB; use XXX\YYY; // Comment # Comment /* Comment */ /** * @doc */ abstract class C extends ZZZ implements III, JJJ { } EOT; for ($i = 258; $i < 409; ++$i) { $name = token_name($i); # print "$i: $name\n"; } $tokens = token_get_all($php); $readable = ''; foreach ($tokens as $token) { if (is_array($token)) { list($id, $str, $line) = $token; $name = token_name($id); $readable .= "<$id:$name>$str"; } else { $readable .= "<*>$str"; } } print $readable;
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.1, 8.3.3, 8.3.5 - 8.3.6
<389:T_OPEN_TAG><?php <392:T_WHITESPACE> <339:T_NAMESPACE>namespace<392:T_WHITESPACE> <265:T_NAME_QUALIFIED>AAA\BBB<*>AAA\BBB<392:T_WHITESPACE> <318:T_USE>use<392:T_WHITESPACE> <265:T_NAME_QUALIFIED>XXX\YYY<*>XXX\YYY<392:T_WHITESPACE> <387:T_COMMENT>// Comment<392:T_WHITESPACE> <387:T_COMMENT># Comment<392:T_WHITESPACE> <387:T_COMMENT>/* Comment */<392:T_WHITESPACE> <388:T_DOC_COMMENT>/** * @doc */<392:T_WHITESPACE> <322:T_ABSTRACT>abstract<392:T_WHITESPACE> <333:T_CLASS>class<392:T_WHITESPACE> <262:T_STRING>C<392:T_WHITESPACE> <337:T_EXTENDS>extends<392:T_WHITESPACE> <262:T_STRING>ZZZ<392:T_WHITESPACE> <338:T_IMPLEMENTS>implements<392:T_WHITESPACE> <262:T_STRING>III<*>III<392:T_WHITESPACE> <262:T_STRING>JJJ<392:T_WHITESPACE> <*> <392:T_WHITESPACE> <*> <392:T_WHITESPACE>
Output for 8.3.0, 8.3.2, 8.3.4
<394:T_OPEN_TAG><?php <397:T_WHITESPACE> <375:T_NAMESPACE>namespace<397:T_WHITESPACE> <316:T_NAME_QUALIFIED>AAA\BBB<*>AAA\BBB<397:T_WHITESPACE> <354:T_USE>use<397:T_WHITESPACE> <316:T_NAME_QUALIFIED>XXX\YYY<*>XXX\YYY<397:T_WHITESPACE> <392:T_COMMENT>// Comment<397:T_WHITESPACE> <392:T_COMMENT># Comment<397:T_WHITESPACE> <392:T_COMMENT>/* Comment */<397:T_WHITESPACE> <393:T_DOC_COMMENT>/** * @doc */<397:T_WHITESPACE> <358:T_ABSTRACT>abstract<397:T_WHITESPACE> <369:T_CLASS>class<397:T_WHITESPACE> <313:T_STRING>C<397:T_WHITESPACE> <373:T_EXTENDS>extends<397:T_WHITESPACE> <313:T_STRING>ZZZ<397:T_WHITESPACE> <374:T_IMPLEMENTS>implements<397:T_WHITESPACE> <313:T_STRING>III<*>III<397:T_WHITESPACE> <313:T_STRING>JJJ<397:T_WHITESPACE> <*> <397:T_WHITESPACE> <*> <397:T_WHITESPACE>
Output for 8.0.30
<387:T_OPEN_TAG><?php <390:T_WHITESPACE> <337:T_NAMESPACE>namespace<390:T_WHITESPACE> <265:T_NAME_QUALIFIED>AAA\BBB<*>AAA\BBB<390:T_WHITESPACE> <318:T_USE>use<390:T_WHITESPACE> <265:T_NAME_QUALIFIED>XXX\YYY<*>XXX\YYY<390:T_WHITESPACE> <385:T_COMMENT>// Comment<390:T_WHITESPACE> <385:T_COMMENT># Comment<390:T_WHITESPACE> <385:T_COMMENT>/* Comment */<390:T_WHITESPACE> <386:T_DOC_COMMENT>/** * @doc */<390:T_WHITESPACE> <322:T_ABSTRACT>abstract<390:T_WHITESPACE> <332:T_CLASS>class<390:T_WHITESPACE> <262:T_STRING>C<390:T_WHITESPACE> <335:T_EXTENDS>extends<390:T_WHITESPACE> <262:T_STRING>ZZZ<390:T_WHITESPACE> <336:T_IMPLEMENTS>implements<390:T_WHITESPACE> <262:T_STRING>III<*>III<390:T_WHITESPACE> <262:T_STRING>JJJ<390:T_WHITESPACE> <*> <390:T_WHITESPACE> <*> <390:T_WHITESPACE>
Output for 8.0.0 - 8.0.29
<390:T_OPEN_TAG><?php <393:T_WHITESPACE> <371:T_NAMESPACE>namespace<393:T_WHITESPACE> <314:T_NAME_QUALIFIED>AAA\BBB<*>AAA\BBB<393:T_WHITESPACE> <352:T_USE>use<393:T_WHITESPACE> <314:T_NAME_QUALIFIED>XXX\YYY<*>XXX\YYY<393:T_WHITESPACE> <388:T_COMMENT>// Comment<393:T_WHITESPACE> <388:T_COMMENT># Comment<393:T_WHITESPACE> <388:T_COMMENT>/* Comment */<393:T_WHITESPACE> <389:T_DOC_COMMENT>/** * @doc */<393:T_WHITESPACE> <356:T_ABSTRACT>abstract<393:T_WHITESPACE> <366:T_CLASS>class<393:T_WHITESPACE> <311:T_STRING>C<393:T_WHITESPACE> <369:T_EXTENDS>extends<393:T_WHITESPACE> <311:T_STRING>ZZZ<393:T_WHITESPACE> <370:T_IMPLEMENTS>implements<393:T_WHITESPACE> <311:T_STRING>III<*>III<393:T_WHITESPACE> <311:T_STRING>JJJ<393:T_WHITESPACE> <*> <393:T_WHITESPACE> <*> <393:T_WHITESPACE>
Output for 7.4.0 - 7.4.33
<382:T_OPEN_TAG><?php <385:T_WHITESPACE> <391:T_NAMESPACE>namespace<385:T_WHITESPACE> <311:T_STRING>AAA<393:T_NS_SEPARATOR>\<311:T_STRING>BBB<*>BBB<385:T_WHITESPACE> <350:T_USE>use<385:T_WHITESPACE> <311:T_STRING>XXX<393:T_NS_SEPARATOR>\<311:T_STRING>YYY<*>YYY<385:T_WHITESPACE> <380:T_COMMENT>// Comment <385:T_WHITESPACE> <380:T_COMMENT># Comment <385:T_WHITESPACE> <380:T_COMMENT>/* Comment */<385:T_WHITESPACE> <381:T_DOC_COMMENT>/** * @doc */<385:T_WHITESPACE> <354:T_ABSTRACT>abstract<385:T_WHITESPACE> <364:T_CLASS>class<385:T_WHITESPACE> <311:T_STRING>C<385:T_WHITESPACE> <367:T_EXTENDS>extends<385:T_WHITESPACE> <311:T_STRING>ZZZ<385:T_WHITESPACE> <368:T_IMPLEMENTS>implements<385:T_WHITESPACE> <311:T_STRING>III<*>III<385:T_WHITESPACE> <311:T_STRING>JJJ<385:T_WHITESPACE> <*> <385:T_WHITESPACE> <*> <385:T_WHITESPACE>
Output for 7.0.0 - 7.0.33, 7.1.0, 7.1.12 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33
<379:T_OPEN_TAG><?php <382:T_WHITESPACE> <388:T_NAMESPACE>namespace<382:T_WHITESPACE> <319:T_STRING>AAA<390:T_NS_SEPARATOR>\<319:T_STRING>BBB<*>BBB<382:T_WHITESPACE> <353:T_USE>use<382:T_WHITESPACE> <319:T_STRING>XXX<390:T_NS_SEPARATOR>\<319:T_STRING>YYY<*>YYY<382:T_WHITESPACE> <377:T_COMMENT>// Comment <382:T_WHITESPACE> <377:T_COMMENT># Comment <382:T_WHITESPACE> <377:T_COMMENT>/* Comment */<382:T_WHITESPACE> <378:T_DOC_COMMENT>/** * @doc */<382:T_WHITESPACE> <312:T_ABSTRACT>abstract<382:T_WHITESPACE> <361:T_CLASS>class<382:T_WHITESPACE> <319:T_STRING>C<382:T_WHITESPACE> <364:T_EXTENDS>extends<382:T_WHITESPACE> <319:T_STRING>ZZZ<382:T_WHITESPACE> <365:T_IMPLEMENTS>implements<382:T_WHITESPACE> <319:T_STRING>III<*>III<382:T_WHITESPACE> <319:T_STRING>JJJ<382:T_WHITESPACE> <*> <382:T_WHITESPACE> <*> <382:T_WHITESPACE>
Output for 7.1.1 - 7.1.11
<379:T_OPEN_TAG><?php <382:T_WHITESPACE> <388:T_NAMESPACE>namespace<382:T_WHITESPACE> <319:T_STRING>AAA<390:T_NS_SEPARATOR>\<319:T_STRING>BBB<*>BBB<382:T_WHITESPACE> <353:T_USE>use<382:T_WHITESPACE> <319:T_STRING>XXX<390:T_NS_SEPARATOR>\<319:T_STRING>YYY<*>YYY<382:T_WHITESPACE> <377:T_COMMENT>// Comment <382:T_WHITESPACE> <377:T_COMMENT># Comment <382:T_WHITESPACE> <377:T_COMMENT>/* Comment */<382:T_WHITESPACE> <378:T_DOC_COMMENT>/** * @doc */<382:T_WHITESPACE> <315:T_ABSTRACT>abstract<382:T_WHITESPACE> <361:T_CLASS>class<382:T_WHITESPACE> <319:T_STRING>C<382:T_WHITESPACE> <364:T_EXTENDS>extends<382:T_WHITESPACE> <319:T_STRING>ZZZ<382:T_WHITESPACE> <365:T_IMPLEMENTS>implements<382:T_WHITESPACE> <319:T_STRING>III<*>III<382:T_WHITESPACE> <319:T_STRING>JJJ<382:T_WHITESPACE> <*> <382:T_WHITESPACE> <*> <382:T_WHITESPACE>
Output for 5.6.0 - 5.6.40
<376:T_OPEN_TAG><?php <379:T_WHITESPACE> <385:T_NAMESPACE>namespace<379:T_WHITESPACE> <310:T_STRING>AAA<388:T_NS_SEPARATOR>\<310:T_STRING>BBB<*>BBB<379:T_WHITESPACE> <344:T_USE>use<379:T_WHITESPACE> <310:T_STRING>XXX<388:T_NS_SEPARATOR>\<310:T_STRING>YYY<*>YYY<379:T_WHITESPACE> <374:T_COMMENT>// Comment <379:T_WHITESPACE> <374:T_COMMENT># Comment <379:T_WHITESPACE> <374:T_COMMENT>/* Comment */<379:T_WHITESPACE> <375:T_DOC_COMMENT>/** * @doc */<379:T_WHITESPACE> <351:T_ABSTRACT>abstract<379:T_WHITESPACE> <358:T_CLASS>class<379:T_WHITESPACE> <310:T_STRING>C<379:T_WHITESPACE> <361:T_EXTENDS>extends<379:T_WHITESPACE> <310:T_STRING>ZZZ<379:T_WHITESPACE> <362:T_IMPLEMENTS>implements<379:T_WHITESPACE> <310:T_STRING>III<*>III<379:T_WHITESPACE> <310:T_STRING>JJJ<379:T_WHITESPACE> <*> <379:T_WHITESPACE> <*> <379:T_WHITESPACE>
Output for 5.5.0 - 5.5.38
<374:T_OPEN_TAG><?php <377:T_WHITESPACE> <383:T_NAMESPACE>namespace<377:T_WHITESPACE> <308:T_STRING>AAA<386:T_NS_SEPARATOR>\<308:T_STRING>BBB<*>BBB<377:T_WHITESPACE> <342:T_USE>use<377:T_WHITESPACE> <308:T_STRING>XXX<386:T_NS_SEPARATOR>\<308:T_STRING>YYY<*>YYY<377:T_WHITESPACE> <372:T_COMMENT>// Comment <377:T_WHITESPACE> <372:T_COMMENT># Comment <377:T_WHITESPACE> <372:T_COMMENT>/* Comment */<377:T_WHITESPACE> <373:T_DOC_COMMENT>/** * @doc */<377:T_WHITESPACE> <349:T_ABSTRACT>abstract<377:T_WHITESPACE> <356:T_CLASS>class<377:T_WHITESPACE> <308:T_STRING>C<377:T_WHITESPACE> <359:T_EXTENDS>extends<377:T_WHITESPACE> <308:T_STRING>ZZZ<377:T_WHITESPACE> <360:T_IMPLEMENTS>implements<377:T_WHITESPACE> <308:T_STRING>III<*>III<377:T_WHITESPACE> <308:T_STRING>JJJ<377:T_WHITESPACE> <*> <377:T_WHITESPACE> <*> <377:T_WHITESPACE>

preferences:
260.83 ms | 403 KiB | 330 Q