|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2021-04-27 15:22 UTC] mdw_php dot net at de-weerd dot name
-Summary: CLI Make '-B' incompatible with '-r' and <file>
+Summary: CLI Make '-B' compatible with '-r' and <file>
[2021-04-27 15:22 UTC] mdw_php dot net at de-weerd dot name
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 11:00:02 2025 UTC |
Description: ------------ Make '-B' and '-E' CLI options compatible with the '-r' and '<file>' arguments. Only '-R' and '-F' options should imply that the CLI expects input. This is usefull to run some code settings before the main script to enable some options (-B "define('DEBUG_CLASS','1')" for instance). Test script: --------------- Running php -B 'echo 1;' -r 'echo 0;' Returns Either execute direct code, process stdin or use a file. Running (with 'test.php' containing '<? echo 0;' php -B 'echo 1;' test.php Expects input were 'php test.php' does not . On a side note, echo | php -B 'echo 1;' -R 'echo 0;' Expected result: ---------------- PHP runs the code specified in '-B' and '-E' would be run around any other code, either specified through '-r', '-R', '<file>'. Currently '-B' seems to imply that input should be parsed, but IMHO only '-R' (and -F) should imply that. To compare with perl: perl -e 'BEGIN{print 1;} print 0;' will print 10 and exit. and perl -e 'BEGIN{print 1;} print 0;' -p will print 1 at the start and 0 for every input line. The presence of "BEGIN" does not imply a loop.