Tutorials Courses Interview Prep (100 Q&A) AI Tools (50) Developer Tools (50) Tracks Pricing Plans Blog & Articles Contact Us
Modern PHP 8.x & Internals 5-8 Years (Senior) Medium Production Scenario

How do Enums in PHP 8.1+ support Backed Values, Methods, and Interfaces?

Real-World Scenario / Incident Description

Replacing string literals in status workflows with type-safe Enums that provide UI labels, colors, and transition validations.

393 views • Updated 1 month ago

Backed Enum with Methods & Traits

enum OrderStatus: string implements HasLabel
{
    case PENDING = 'pending';
    case PROCESSING = 'processing';
    case COMPLETED = 'completed';
    case CANCELLED = 'cancelled';

    public function label(): string
    {
        return match($this) {
            self::PENDING => 'Awaiting Payment',
            self::PROCESSING => 'In Progress',
            self::COMPLETED => 'Order Delivered',
            self::CANCELLED => 'Order Cancelled',
        };
    }

    public function canCancel(): bool
    {
        return in_array($this, [self::PENDING, self::PROCESSING], true);
    }
}
Related Concepts: #Enums #Backed Enums #Type Safety #OOP