Patch for define() / zend_builtin_functions.c

From: Date: Tue, 02 Oct 2001 07:22:51 +0000
Subject: Patch for define() / zend_builtin_functions.c
Groups: php.dev 
Request: Send a blank email to php-dev+get-66975@lists.php.net to get a copy of this message
Bug report 13505 got me thinking about the behavior of define() - if 
you try to define a constant name that is a reserved word, or an 
existing function or class name, no warning is generated.

This could have  been a conscious decision - a case where it was 
decided that some safety could be traded for a bit of extra speed. If 
it wasn't, then here is a patch to check that the constant name does 
not clash with a reserved work, function name or class name.

I used an array of reserved words and a for loop to handle finding 
conflicting reserved words. Is there a better way to do this. AFAICT 
the other methods for handling reserved word conflicts are handled at 
the parser level. i.e. Trying to define 'function and (){}' generates a 
parser error.

Anyhoo, perhaps someone could take a look at the patch? :)

-- 
Zak Greant

PHP Quality Assurance Team
http://qa.php.net/

"We must be the change we wish to see." - M. K. Ghandi


Attachment: [text/x-diff] zend_builtin_functions.c.patch

Thread (6 messages)

« previous php.dev (#66975) next »