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