When an enum
case
has no assigned (scalar) value in PHP, it is called a Pure Case, and an enum
that contains only pure cases is called a "Pure Enum".
Consider, for example, the following pure enum (which only contains enum
cases that have no assigned values):
// PHP 8.1+ enum MyEnum { case Foo; case Bar; case Baz; }
The opposite of Pure enums are Backed Enums (which only have cases that have scalar values).
Pure cases are not implicitly backed by a default value (such as 0
for instance); each case
is, in fact, a singleton object.
Pure enums have:
- Cases that have a read-only
name
property that returns the case-sensitive name of the respectivecase
; - A static
cases()
method that returns an array of all defined cases.
// PHP 8.1+ // ... $cases = MyEnum::cases(); var_dump($cases); // [enum(MyEnum::Foo), enum(MyEnum::Bar), enum(MyEnum::Baz)] echo $cases[0]->name; // 'Foo' echo MyEnum::Foo->name; // 'Foo'
This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.