On 19 May 2010 22:18, Alban LEROUX <s...@paradoxal.org> wrote:
> On 2010-05-19 14:04:13 +0200, Ferenc Kovacs said:
>
>> On Wed, May 19, 2010 at 1:49 PM, Christian Schneider
>> <cschn...@cschneid.com>wrote:
>>
>>> fqqdk wrote:
>>>>
>>>> How about extending the usage of the 'final' keyword to support a
>>>
>>> java-like
>>>>
>>>> syntax?
>>>>
>>>> class Foo {
>>>> private static final $bar = 'ex' . 'pression';
>>>
>>> In my book "final" in Java gets an award for sickest abuse of a keyword.
>>> So no, I don't consider this an option. Simply use a class variable (or
>>> define()) if you need to store some runtime calculated value.
>>>
>>> "But <insert other language> can do this" alone is not sufficient as a
>>> reason to bloat PHP IMHO.
>>>
>>> - Chris
>>>
>>
>> I think that is pretty subjective, but I did suprised when I found out,
>> that
>> the global scope constants behaves differently than the class consts.
>>
>> Allowing the class consts to be initialized in runtime(if neccessary)
>> wouldn't breake any php application, only slow them.
>> Can't we do something, to allow broader usage of consts without
>> sacrificing
>> performance?
>> So I propose to add a new syntax: literal.
>> literal should behave how the const behaved, and const should be
>> initialized
>> in runtime.
>> maybe we could check from runtime, that the const was a dynamic value, or
>> literal, and generate a notice for the developer to change the const to
>> literal for gaining performance.
>>
>> What do you think?
>>
>> Tyrael
>
> That's could be very useful to define flag, something like that :
>
> class foo {
>        const CASE_1 = 1 << 1;
>        const CASE_2 = 1 << 2;
>        const CASE_3 = 1 << 3;
>        const CASE_4 = 1 << 4;
>        ....
> }
> --
> Alban Leroux
> s...@paradoxal.org
> Web developper
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

For this, an enumerator could be an option. I would certainly use this
a LOT for many sort of statuses within my code.

class foo {
 const enum {
  CASE_1,
  CASE_2,
  CASE_3,
  CASE_4
 };
}

maybe.

-- 
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling

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

Reply via email to