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

Reply via email to