|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-10-09 06:07 UTC] rprangnell at hotmail dot com
Having carefully searching the bugs database and drawn a blank on this( I made sure to include 'closed' and 'bogus' entries in my search!), I would like to point out that the new 'heredoc' syntax (which is GREAT) has a little bug that could prove troublesome as it is hard to spot. The bug is that you can't put anything other than the 'return' character after the semi-colon that closes the statement. Even a single white space character after the semi-colon forces a parse error. This can be a poser, especially if the user's editor can't display non-printing characters.
Typically, this kind of thing won't work:
$query = <<< SQL
SELECT parentID
FROM messages
WHERE msgID = $msgID
SQL; // Can't put a comment (or anything else) here!
I encountered the same bug with both the PWS and the Apache ISAPI module version.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 08:00:01 2025 UTC |
Here's a quick patch which just allows text *after* the semicolon, and doesn't appear to affect anything else, so BC shouldn't be a problem. stat@php.net told me before that this is 'intentional', but no-one has yet explained why... Note that this patch may not be the best solution, but it does illustrate what I'm after. Torben Index: zend_language_scanner.l =================================================================== RCS file: /repository/Zend/zend_language_scanner.l,v retrieving revision 1.43 diff -u -r1.43 zend_language_scanner.l --- zend_language_scanner.l 2002/01/06 15:21:09 1.43 +++ zend_language_scanner.l 2002/01/29 02:54:16 @@ -1256,7 +1256,7 @@ } -<ST_HEREDOC>^{LABEL}(";")?{NEWLINE} { +<ST_HEREDOC>^{LABEL}(";")? { int label_len; unsigned char unput_semicolon;