ID:               36682
 Updated by:       [EMAIL PROTECTED]
 Reported By:      daniele_dll at yahoo dot it
 Status:           Open
-Bug Type:         Scripting Engine problem
+Bug Type:         Documentation problem
 Operating System: Windows XP SP2
 PHP Version:      5.1.2
 New Comment:

Reclassifying as a doc problem. The behavior is correct.


Previous Comments:
------------------------------------------------------------------------

[2006-03-10 20:10:08] daniele_dll at yahoo dot it

for [EMAIL PROTECTED]:

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

------------------------------------------------------------------------

[2006-03-10 18:44:05] daniele_dll at yahoo dot it

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?

------------------------------------------------------------------------

[2006-03-10 18:07:34] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

The terminating new line is obligatory

------------------------------------------------------------------------

[2006-03-10 17:50:07] 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


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=36682&edit=1

Reply via email to