Re: Constant and expression ?
| From: | Tjerk Anne Meesters | Date: | Wed, 19 May 2010 10:21:27 +0000 |
| Subject: | Re: Constant and expression ? | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-48343@lists.php.net to get a copy of this message | ||
On Wed, May 19, 2010 at 5:52 PM, Frederic Hardy
<frederic.hardy@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