Enums
Enums define a closed set of named values.
What it is
Enums define a closed set of named values.
When to use it
Model finite states and prevent arbitrary strings.
Syntax
enum PaymentStatus: string
{
case Pending = "pending";
case Settled = "settled";
case Failed = "failed";
}Example
$status = PaymentStatus::tryFrom($input);
if ($status === null) {
throw new InvalidArgumentException("Unknown status");
}Common mistakes
An enum does not enforce valid state transitions; from() throws on unknown input.