#22047 [Asn->WFx]: PHP pollutes the namespace w/ (what looks like) its grammar tokens

From: Date: Tue, 04 Feb 2003 16:27:54 +0000
Subject: #22047 [Asn->WFx]: 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-32076@lists.php.net to get a copy of this message
ID: 22047 Updated by: derick@php.net Reported By: szepe@pinerecords.com -Status: Assigned +Status: Wont fix Bug Type: *General Issues Operating System: Linux PHP Version: 4.3.0 Assigned To: derick New Comment: A notice is fine, we're not going to change this as it might break scripts out there. Previous Comments: ------------------------------------------------------------------------ [2003-02-04 10:20:52] szepe@pinerecords.com 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 ------------------------------------------------------------------------ [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

« previous php.bugs (#32076) next »