For those who keep saying "but this can already be done in php", here is a pretty good article. Long time ago enums were not available in Java also, so this article explains that yes, thigs can technically could be done before the enum, and why certain things are better with enums.
http://javarevisited.blogspot.com/2011/08/enum-in-java-example-tutorial.html I think enums will be beneficial to php, but will add one more features that people not familiar with it will have to learn about. Dmitri Snytkine Web Developer Ultra Logistics, Inc. Phone: (888) 220-4640 x 2097 Fax: (888) 795-6642 E-Mail: dsnytk...@ultralogistics.com Web: www.ultralogistics.com "A Top 100 Logistics I.T. Provider in 2011" -----Original Message----- From: Sebastian Krebs [mailto:krebs....@googlemail.com] Sent: Wednesday, February 22, 2012 4:31 PM To: PHP internals list Subject: Re: [PHP-DEV] [RFC] Enum proposal (yet another) Am 22.02.2012 22:22, schrieb Ángel González: > On 22/02/12 09:37, Sebastian Krebs wrote: >> class MyEnum { >> const FOO = 'foo'; >> const BAR = 'bar'; >> private $value; >> public function __construct ($value) { >> if (!in_array($value, array(self::FOO, self::BAR)) throw new >> UnexpectedValueException; >> $this->value = $value; >> } >> public function __toString () { return $this->value; } >> } >> >> >> function doSomething (MyEnum $foo) { /* code */ } >> >> >> What I wanted to say: I don't see, what is not possible already? > > I want to call it doSomething(FOO) or doSomething(MyEnum::FOO), > not doSomething(new MyEnum(MyEnum::FOO)); // The class file class MyEnum { public static $FOO; public static $BAR; const FOO = 'foo'; const BAR = 'bar'; private $value; public function __construct ($value) { if (!in_array($value, array(self::FOO, self::BAR)) throw new UnexpectedValueException; $this->value = $value; } public function __toString () { return $this->value; } } /* static code block */ { // As long as PHP doesn't support "constant references" (;)) // (--> constants with objects or arrays) MyEnum::$FOO = new MyEnum(MyEnum::FOO); MyEnum::$BAR = new MyEnum(MyEnum::BAR); } // End class file // Somewhere deep within some other code doSomething (MyEnum::$FOO); However, I can't see, what is the big thing, that isn't currently not possible (except any "I want"-argumentation :X) Sidenote, according your examples above on how you want call functions: Considered using normal constants? > > +1 for adding enums (although I'm open to variations from that exact > proposal). > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php