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

Reply via email to