#22047 [Com]: PHP pollutes the namespace w/ (what looks like) its grammar tokens
| From: | szepe at pinerecords dot com | Date: | Tue, 04 Feb 2003 16:20:53 +0000 |
| Subject: | #22047 [Com]: PHP pollutes the namespace w/ (what looks like) its grammar tokens | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-32074@lists.php.net to get a copy of this message | ||
ID: 22047
Comment by: szepe@pinerecords.com
Reported By: szepe@pinerecords.com
Status: Assigned
Bug Type: *General Issues
Operating System: Linux
PHP Version: 4.3.0
Assigned To: derick
New Comment:
Good, thanks.
Let me clarify -
PHP does log a NOTICE such as
[04-Feb-2003 17:18:22] PHP Notice:
Constant T_LIST already defined
in x.php on line 3
but this definitely needs to be a WARNING
or even an ERROR.
-Tomas
Previous Comments:
------------------------------------------------------------------------
[2003-02-04 10:13:58] derick@php.net
That is a good idea, thought it did that. Assigned.
------------------------------------------------------------------------
[2003-02-04 10:09:56] szepe@pinerecords.com
Hmm. I'm convinced PHP should at least file a big fat
warning upon any attempted redefinition of a reserved
constant name, instead of ignoring the instruction
entirely.
Identifiers such as T_LIST are very often used in enums.
------------------------------------------------------------------------
[2003-02-04 10:05:43] derick@php.net
The tokenizer extension needs those, and changing it now would be
breaking all scripts that make use of it. So there is little we can do
here...
Derick
------------------------------------------------------------------------
[2003-02-04 10:02:59] szepe@pinerecords.com
Since 4.3.0, PHP defines constants that are suspiciously
similar to its grammar tokens. These cannot be redefined
and should clearly be considered namespace pollution.
For instance, the following example:
<?
echo T_LIST, ", ", T_STRING, "\n";
?>
will output '345, 304'.
Needless to say, this broke one of my PHP creations
horribly. :)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=22047&edit=1