Req #40832 [Bgs]: Behavior of PI end in single-line comment
| From: | derp at example dot com | Date: | Wed, 22 Dec 2010 15:43:59 +0000 |
| Subject: | Req #40832 [Bgs]: Behavior of PI end in single-line comment | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-157267@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=40832&edit=1
ID: 40832
User updated by: derp at example dot com
Reported by: derp at example dot com
Summary: Behavior of PI end in single-line comment
Status: Bogus
Type: Feature/Change Request
Package: *General Issues
Operating System: Linux 2.4.26-gentoo-r7
PHP Version: 5.2.1
Block user comment: N
Private report: N
New Comment:
re. [2010-12-22 12:21 UTC] johannes@php.net:
Haha, I had forgotten that I'd ever used PHP, let alone filed any bugs.
I suppose it's great that you still care, but you've misunderstood:
Consider
#! /usr/bin/php
<?php "abc ?>"; ?>
I am output!
the output is
I am output!
but, if the code above is changed to
#! /usr/bin/php
<?php //"abc ?>"; ?>
I am output!
the output becomes:
"; ?>
I am output!
Now do you see what I was talking about? The two characters ?> that
were formerly part of a string literal, and therefore not recognized as
a processing instruction end, suddenly start behaving as a PI-end when
the string literal has been commented out.
Your example has nothing to do with my suggestion (if you read
carefully).
Previous Comments:
------------------------------------------------------------------------
[2010-12-22 13:21:11] johannes@php.net
The behavior is needed to allow using single line comments while
embedding PHP in HTML like in
<h1><?php echio $title; // comment ?></h1>
Your compromise won't work as it break valid code like
<?php if ($cond) { ?><h1>TRUE</h1><?php } ?>
------------------------------------------------------------------------
[2007-03-16 02:15:17] derp at example dot com
Description:
------------
When a processing instruction end (PIE), i.e., "?>", is encountered in a
single-line comment, the PHP parser should handle it more intelligently,
thus:
If the PIE would, when outside single-line comment context (SLCC), not
mark the end of the current PHP code block (e.g., if it occurred inside
a string literal), it should not, when inside SLCC, mark the end of the
code block.
---
The above represents a compromise suggestion. I feel the semantics of
comments ought to be the same as those in, e.g., C, Perl; i.e., comment
text should be naively stripped from the input stream seen by the
parser.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=40832&edit=1