Assumming they would be closer to immutable objects they may have some
usefull... I was gonna say methods but the term doesn't fit to enums.
But using one of my favourite userland implementation such as `esky\enum`
package there are ways to create enumeration from value or from name.
Those methods are quite usefull when converting user data passed in request
from string to enumeration.
Given the example:

enum Day {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}

When using passed from request data proper enumeration could be restored
for eg.

$_GET['day'] = 'MONDAY';
$day = Day::fromName($_GET['day']); // Day.MONDAY

or by value

$day = Day::fromValue(0); // Day.MONDAY

Think of it as possible way of restoring from primitive types because then
enums would really be closer to classes than values.
And also then could even utilise `object

2017-02-15 20:53 GMT+01:00 Rasmus Schultz <ras...@mindplay.dk>:

> In the light of this, maybe enums (assuming this feature comes first)
> should be implemented as immutable objects rather than values?
>
> Type-checking for enums would be important, so in PHP terms, an enum
> "instance" would likely be closer to an object than a value in nature
> anyway.
>
> The way I look at it, this feature doesn't prevent enums from happening, it
> just changes the design parameters.
>
> Just a thought.
>
>
> On Wed, Feb 15, 2017 at 4:34 PM, Andrea Faulds <a...@ajf.me> wrote:
>
> > Hi Marco,
> >
> > Marco Pivetta wrote:
> >
> >>
> >> Since the engine is clueless about types until autoloading happens, this
> >> is
> >> easily solvable by providing a marker syntax for non-object hints. For
> >> instance `function foo() : enym:MyEnum {}`
> >>
> >
> > If we're going to do prefixes for non-classes, we might as well copy C
> > outright: `enum MyEnum`.
> >
> > Thanks.
> > --
> > Andrea Faulds
> > https://ajf.me/
> >
> >
> > --
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>



-- 
regards / pozdrawiam,
--
Michał Brzuchalski
about.me/brzuchal
brzuchalski.com

Reply via email to