I was reading the RFC for the proposed enum language structure and was 
wondering if I could get some clarification on the implementation. Forgive me 
if this is in the patch or has been discussed already but based solely on what 
is written in the RFC I have some concerns.

http://wiki.php.net/rfc/enum

Nowhere in the RFC does it mention any of the enumerations as having a name, 
like a class would have a name. This seems like a critical point to me, for the 
following reasons.


·         People will want multiple enumerations.

·         Other programming languages allow for named enumerations.

·         Parameters should be able to be type-hinted against enumerations just 
like they are classes. This will be a huge selling point, especially for 
framework developers and people who rely heavily on auto-complete from their 
IDEs.

·         It will be difficult to namespace enumerations without a name, unless 
the intent is that there is a single global enum per namespace.

Also, enums inside of classes should be like any other property or method 
inside of a class in that you should able to mark them as public, private, or 
protected.

So, my proposed syntax would look something more like this.

namespace System\Logs
{
                enum Levels{
                                DEBUG,
                                INFO,
                                WARNING,
                                ERROR
                };
}

//or inside of a class

namespace System\Syntax
{
                class Tokens{
                                public enum ControlStatements{
                                                T_IF = 258,
                                                T_ELSE,
                                                T_WHILE,
                                                T_DO
                                };

                                protected enum Operators{
                                                IS_IDENTICAL = 15,
                                                IS_NOT_IDENTICAL,
                                                IS_EQUAL,
                                                IS_NOT_EQUAL,
                                                IS_SMALLER,
                                                IS_SMALLER_OR_EQUAL
                                };
                }
}

Thanks!

Jarrod Nettles
Application Developer - Technology
INCCRRA
p 309.829.5327 - f 309.828.1808

This e-mail message may contain privileged or confidential information. If you 
are not the intended recipient, you may not disclose, use, disseminate, 
distribute, copy or rely upon this message or attachment in any way. If you 
received this e-mail message in error, please return by forwarding the message 
and its attachments to the sender. INCCRRA does not accept liability for any 
errors, omissions, corruption or virus in the contents of this message or any 
attachments that arises as a result of e-mail transmission.

Please consider your environmental responsibility before printing this e-mail

Reply via email to