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

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.

"Closing delimiter (possibly followed by a semicolon) must be followed
by a newline too."


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

[2006-03-11 17:02:12] [EMAIL PROTECTED]

Reclassifying as a doc problem. The behavior is correct.

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

[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