On Wed, May 19, 2010 at 5:52 PM, Frederic Hardy <frederic.ha...@mageekbox.net> wrote: > Hello ! >> >> AFAIK class constants are optimized for speed and therefore don't >> support expressions; don't expect this to change any time soon ;-) >> >>> Is there any feature request about constant and expression ? >>> I would like to write something like that : >>> >>> <?php >>> >>> namespace foo\bar\directories { >>> const tmp = __DIR__ . '/tmp'; >>> } >>> >>> ?> > > So the best solution is something like <?php > define('foo\bar\directories\tmp', __DIR__ . '/tmp'); ?>... > It 's strange that "define()" function can do something that the "const" > keyword can't do, even if "const" keyword evaluation is done at compilation > time and "define()" evaluation is done at runtime.
That's why there's a cost penalty to using define(). I wrote a small article that gives an idea of the speed differences: http://shwup.blogspot.com/2010/04/about-constants.html > > Best regards, > Fred. > > -- > ======================================================================== > Frédéric Hardy : Architecte d'application/Admin. système/Ergonome > Status : En recherche d'emploi > ======================================================================== > > -- -- Tjerk -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php