@ 2015-12-08T02:36:18Z <?php
function foo(&$x) {}
$i = 0;
foo(++$i);
$php = <<<'EOT'
<?php
namespace AAA\BBB;
use XXX\YYY;
// Comment
# Comment
/* Comment */
/**
* @doc
*/
abstract class C
extends ZZZ
implements III, JJJ
{
function & foo() {}
}
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 .= "<*>$token";
}
}
print $readable;
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.3.0 - 8.3.4 , 8.3.6 Fatal error: Uncaught Error: foo(): Argument #1 ($x) could not be passed by reference in /in/Zh52l:5
Stack trace:
#0 {main}
thrown in /in/Zh52l on line 5
Process exited with code 255 . Output for 8.3.5 Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Fatal error: Uncaught Error: foo(): Argument #1 ($x) could not be passed by reference in /in/Zh52l:5
Stack trace:
#0 {main}
thrown in /in/Zh52l on line 5
Process exited with code 255 . Output for 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 Fatal error: Uncaught Error: foo(): Argument #1 ($x) cannot be passed by reference in /in/Zh52l:5
Stack trace:
#0 {main}
thrown in /in/Zh52l on line 5
Process exited with code 255 . Output for 7.4.0 - 7.4.33 Notice: Only variables should be passed by reference in /in/Zh52l on line 5
<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<*>;<385:T_WHITESPACE>
<350:T_USE>use<385:T_WHITESPACE> <311:T_STRING>XXX<393:T_NS_SEPARATOR>\<311:T_STRING>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<*>,<385:T_WHITESPACE> <311:T_STRING>JJJ<385:T_WHITESPACE>
<*>{<385:T_WHITESPACE>
<342:T_FUNCTION>function<385:T_WHITESPACE> <*>&<385:T_WHITESPACE> <311:T_STRING>foo<*>(<*>)<385:T_WHITESPACE> <*>{<*>}<385:T_WHITESPACE>
<*>}<385:T_WHITESPACE>
Output for 7.3.32 - 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<*>;<382:T_WHITESPACE>
<353:T_USE>use<382:T_WHITESPACE> <319:T_STRING>XXX<390:T_NS_SEPARATOR>\<319:T_STRING>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<*>,<382:T_WHITESPACE> <319:T_STRING>JJJ<382:T_WHITESPACE>
<*>{<382:T_WHITESPACE>
<346:T_FUNCTION>function<382:T_WHITESPACE> <*>&<382:T_WHITESPACE> <319:T_STRING>foo<*>(<*>)<382:T_WHITESPACE> <*>{<*>}<382:T_WHITESPACE>
<*>}<382:T_WHITESPACE>
Output for 7.0.0 - 7.0.20 , 7.1.0 , 7.1.20 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.31 Notice: Only variables should be passed by reference in /in/Zh52l on line 5
<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<*>;<382:T_WHITESPACE>
<353:T_USE>use<382:T_WHITESPACE> <319:T_STRING>XXX<390:T_NS_SEPARATOR>\<319:T_STRING>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<*>,<382:T_WHITESPACE> <319:T_STRING>JJJ<382:T_WHITESPACE>
<*>{<382:T_WHITESPACE>
<346:T_FUNCTION>function<382:T_WHITESPACE> <*>&<382:T_WHITESPACE> <319:T_STRING>foo<*>(<*>)<382:T_WHITESPACE> <*>{<*>}<382:T_WHITESPACE>
<*>}<382:T_WHITESPACE>
Output for 7.1.5 - 7.1.10 Notice: Only variables should be passed by reference in /in/Zh52l on line 5
<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<*>;<382:T_WHITESPACE>
<353:T_USE>use<382:T_WHITESPACE> <319:T_STRING>XXX<390:T_NS_SEPARATOR>\<319:T_STRING>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<*>,<382:T_WHITESPACE> <319:T_STRING>JJJ<382:T_WHITESPACE>
<*>{<382:T_WHITESPACE>
<346:T_FUNCTION>function<382:T_WHITESPACE> <*>&<382:T_WHITESPACE> <319:T_STRING>foo<*>(<*>)<382:T_WHITESPACE> <*>{<*>}<382:T_WHITESPACE>
<*>}<382:T_WHITESPACE>
Output for 5.6.8 - 5.6.28 Strict Standards: Only variables should be passed by reference in /in/Zh52l on line 5
<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<*>;<379:T_WHITESPACE>
<344:T_USE>use<379:T_WHITESPACE> <310:T_STRING>XXX<388:T_NS_SEPARATOR>\<310:T_STRING>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<*>,<379:T_WHITESPACE> <310:T_STRING>JJJ<379:T_WHITESPACE>
<*>{<379:T_WHITESPACE>
<337:T_FUNCTION>function<379:T_WHITESPACE> <*>&<379:T_WHITESPACE> <310:T_STRING>foo<*>(<*>)<379:T_WHITESPACE> <*>{<*>}<379:T_WHITESPACE>
<*>}<379:T_WHITESPACE>
Output for 5.5.24 - 5.5.35 Strict Standards: Only variables should be passed by reference in /in/Zh52l on line 5
<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<*>;<377:T_WHITESPACE>
<342:T_USE>use<377:T_WHITESPACE> <308:T_STRING>XXX<386:T_NS_SEPARATOR>\<308:T_STRING>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<*>,<377:T_WHITESPACE> <308:T_STRING>JJJ<377:T_WHITESPACE>
<*>{<377:T_WHITESPACE>
<335:T_FUNCTION>function<377:T_WHITESPACE> <*>&<377:T_WHITESPACE> <308:T_STRING>foo<*>(<*>)<377:T_WHITESPACE> <*>{<*>}<377:T_WHITESPACE>
<*>}<377:T_WHITESPACE>
preferences:dark mode live preview
165.33 ms | 403 KiB | 213 Q