--TEST-- Backed Enum with multiple implementing interfaces --FILE-- 'Red', self::Clubs, self::Spades => 'Black', }; } public function shape(): string { return match ($this) { self::Hearts => 'heart', self::Diamonds => 'diamond', self::Clubs => 'club', self::Spades => 'spade', }; } } echo Suit::Hearts->color() . "\n"; echo Suit::Hearts->shape() . "\n"; echo Suit::Diamonds->color() . "\n"; echo Suit::Diamonds->shape() . "\n"; echo Suit::Clubs->color() . "\n"; echo Suit::Clubs->shape() . "\n"; echo Suit::Spades->color() . "\n"; echo Suit::Spades->shape() . "\n"; ?> --EXPECT-- Red heart Red diamond Black club Black spade