Hi Jochem,

you can get the valu of that constant with the constant() function and use
such a constant with defined() so forbidding this would at least be a BC
break.
btw. the same goes for reserved words so define('echo', 42); is valid too
but "echo echo;" doesn't work :-)

johannes
 
Jochem Maas wrote:

> hi guys,
> 
> I was mucking around and noticed the following:
> 
> define("404_SKIP", 1);
> 
> does not give an error and you can successfully get the value of the
> constant by doing:
> 
> constant("404_SKIP");
> 
> where as doing:
> 
> echo 404_SKIP;
> 
> gives an error.
> as I understand it, i.e. what the docs say, is that the following regexp
>   expresses valid starting chars for the name of a constant (the same
> going for vars):
> 
> /^[a-zA-Z_\x7f-\xff]/
> 
> so pretty minor thing here but I expected to see the define() throw a
> (fatal?) error, rather than letting me go on.
> 
> kind regards,
> Jochem

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to