Does it output "barfoo" or "bar"?
~Jason
At 5/5/2004 10:01 PM +0200, Mehdi Achour wrote:
Hi !
The manual reads :
"The name of a constant follows the same rules as any label in PHP. A
valid constant name starts with a letter or underscore, followed
by any number of letters, numbers, or underscores. As a regular
expression, it would be expressed thusly:
'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]'"
I know that this is true when trying to echo a constant directly, as the
parser raise an error, but you can trick it with a constant()
call :
<?php
define('
(\ /)
{=B0_=B0)
() ()
( )( )
', 'barfoo');
echo constant('
(\ /)
{=B0_=B0)
() ()
( )( )
') . chr(10); // outputs : bar
Is it a feature or a bug ? :)
Mehdi Achour
--
Jason Garber
President & Chief Technology Officer
IonZoft, Inc.
814.742.8030 :: jason@ionzoft.com :: http://IonZoft.com
barfoo (c/p error)
Jason Garber wrote:
Does it output "barfoo" or "bar"?
~JasonAt 5/5/2004 10:01 PM +0200, Mehdi Achour wrote:
Hi !The manual reads :
"The name of a constant follows the same rules as any label in PHP. A
valid constant name starts with a letter or underscore, followed
by any number of letters, numbers, or underscores. As a regular
expression, it would be expressed thusly:
'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]'"I know that this is true when trying to echo a constant directly, as the
parser raise an error, but you can trick it with aconstant()
call :<?php
define('
(\ /)
{=B0_=B0)
() ()
( )( )
', 'barfoo');echo constant('
(\ /)
{=B0_=B0)
() ()
( )( )
') . chr(10); // outputs : barIs it a feature or a bug ? :)
Mehdi Achour