|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2006-03-10 17:50 UTC] daniele_dll at yahoo dot it
Description: ------------ Terminating an heredoc without a newline cause a parse error. The reported code was tested with php 5.0.4, 5.0.5 and 5.1.2 Reproduce code: --------------- <?php echo <<< HEREDOC_EOF Test Heredoc All works fine! HEREDOC_EOF;?> Expected result: ---------------- This code should output the text into the heredoc Actual result: -------------- The execution of this code return a parse error PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Nov 18 12:00:01 2025 UTC |
This doesn't make sense! Why an heredoc needs, to works correctly, a line only for it, without other stuff after the terminator (with a semicolon)? If there is a terminator and an ending semicolon, the command terminates there, so i should add other commands in the same line without problems. I don't think this is a "really" bug, but it is a "logical" bug. If the heredoc terminator is founded and there is a semicolon to terminate the line, a new command can be executed, like all other structures in php. i can write <?php $a = 1; $c = 'daniele_dll'; $b = 'test'; $a = $b; $b = $c; echo $a . $b . $c; echo print_r($_SERVER, true); die("ASD"); ?> without problems, so have heredoc that doesn't let to me to add multiple commands after the heredoc termination (plus semicolon) doesn't make sense for me. There is a particular reason to manage heredoc in this way?for johannes@php.net: in the description of the bug i've said that "Terminating an heredoc without a newline cause a parse error" ... if you try an heredoc into an eval, terminating the stuff without a new line after the heredoc's terminator, you get a parse error for evalued code! [code] echo eval("return <<< EOF\r\nAll Works Correctly!\r\nEOF;"); [/code] So there is this "real" problem (not related to other characters into the terminator line) Or the heredoc's manual page need to be updated with a new sentence, like [quote] Remember that after the heredoc terminator is necessary a new line. [/quote] Or this, possible, bug need to be corrected