On Wed, Dec 30, 2020, at 12:30 PM, Aleksander Machniak wrote: > On 28.12.2020 21:21, Larry Garfield wrote: > > https://wiki.php.net/rfc/enumerations > Why can't this be simplified to: > > enum Size { > case Small; > case Medium; > case Large; > } > > 'Small' === Size::Small->value; // true > Size::from('Small') === Size::Small; // true > > enum Suit { > case Hearts = 'H'; > case Diamonds = 'D'; > case Clubs = 'C'; > case Spades = 'S'; > } > > 'H' === Suit::Hearts->value; // true > 'Hearts' === Suit::Hearts->value; // false
That's a possibility we've been kicking around. I'm considering it, Ilija doesn't care for it. :-) What's your argument in favor? Related: There is an internal "case" value that is used as well. It could be exposed as a normal read-only property, which would always be equal to the name of the case ("Hearts"), regardless of whether another "value" is defined. We're still undecided on that, too. > Also, how about using a method instead of property for ->value? We originally did. Ilija preferred moving it to a property since there will need to be one anyway to store the value. I moderately favor a method but don't greatly care either way. --Larry Garfield -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php