ID:               42461
 Updated by:       [EMAIL PROTECTED]
 Reported By:      theblazingangel at aol dot com
-Status:           Open
+Status:           Bogus
-Bug Type:         *Compile Issues
+Bug Type:         Scripting Engine problem
 Operating System: Win XP
 PHP Version:      5.2.3
 New Comment:

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




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

[2007-08-28 15:01:10] theblazingangel at aol dot com

Description:
------------
//?> (with anything or nothing in-between // and ?>) can cause parse
errors.

i noticed this while constructing regex patterns, when i used // to
comment out lines containing >?, it gave me this error:
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION
in <file> on line 466

it can be extremely confusing when you suddenly get this error after
commenting out a line like:
//preg_match_all("/(?:^|[ ]+)(?!\-)\+?(?:(?>\"|\')(?=((?:[
]\\1|$\\1)+))\\1|([^ ]+))(?:|(?=[ ])|$)/s", $search, $matches);

i get that in a situation like the following, ?> should be taken as the
end of the php code: <?php echo $data //print data ?>
however, in the situation i was in, (where commenting out the line
resulted in the ?> being taken as the php terminator, and therefore
causing an error because the if/loop/function/class/etc hadn't
finished), shouldn't the php parser, before reporting the error, attempt
to continue as if the ?> was part of the comment?

the solution is to use /**/ rather than //, but it seems counter
intuitive to me that it fails in the frst place in such a situation...

Reproduce code:
---------------
<?php

if(1==1)
{
        //?>
}

?>

Expected result:
----------------
for example code:
a blank page

for the code i discovered it in:
it should have continued with no error

Actual result:
--------------
with the example:
Parse error: syntax error, unexpected $end in <file> on line 8

with the code in the description, in the file i used it in (a wordpress
plugin):
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION
in <file> on line <x>


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


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

Reply via email to