On Tue, 2 Oct 2001, Zak Greant wrote:

> 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? :)

The idea looks ok, but the looping through the reserved words array would
be very slow. However, keeping the first two checks in place it would be
good IMO.

Derick

---------------------------------------------------------------------
        PHP: Scripting the Web - www.php.net - [EMAIL PROTECTED]
             SRM: Site Resource Manager - www.vl-srm.net
---------------------------------------------------------------------



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to