On 2011-06-03, Dennis Haarbrink <dhaarbr...@gmail.com> wrote: > One thing I would really like to see in 5.4 is enums. > There is already an RFC for that: https://wiki.php.net/rfc/enum > > This was discussed in february this year, but no consensus was reached. > IIRC, the most notable problems were: > - What is the 'value' of enum constant: string or int, user defined scalar, > defaults > - Ability to make enums more 'class like', some people wanted to be able to > add methods. > > Another thing which was discussed (and I think most people agreed on that), > but is not in the RFC: type hinting in method signatures.
I'd like to see some examples of _using_ the enums -- how do you reference them? How do you make comparisons against them? As an example: if (!$value in SomeEnum) { throw new Exception; } Would that work? or are you envisioning this: if (!$value instanceof SomeEnum) { throw new Exception; } (The latter is less intuitive, IMO). One particular use case I'm curious about: could comparisons take into consideration logical operators (&, |, ^, etc.)? Comparison and/or type hinting against an enum is really the only feature I see that makes them worthwhile; otherwise, we already have namespaced and class-level constants. > I think we should keep this simple proposal simple, let it be an enum in all > its simplicity. > The toughest part would be to decide what would be the default value. Some > proposed to use the name of the constant, which is imho best for > debuggability (i like this one the best), or an auto incrementing int, > saying that it is better performance wise and which is more analog with > mysql's enum type. > > > So, to sum up: > - Do we really need enum level methods? > - Need to reach consensus on default values (strings vs auto inc. ints) > - RFC needs to be updated, explaining the type hinting of enums in method > signatures -- Matthew Weier O'Phinney Project Lead | matt...@zend.com Zend Framework | http://framework.zend.com/ PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php