summaryrefslogtreecommitdiff
path: root/Zend/tests/enum/implements.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/enum/implements.phpt')
-rw-r--r--Zend/tests/enum/implements.phpt34
1 files changed, 34 insertions, 0 deletions
diff --git a/Zend/tests/enum/implements.phpt b/Zend/tests/enum/implements.phpt
new file mode 100644
index 0000000000..fc90ab2aef
--- /dev/null
+++ b/Zend/tests/enum/implements.phpt
@@ -0,0 +1,34 @@
+--TEST--
+Enum implements
+--FILE--
+<?php
+
+interface Colorful {
+ public function color(): string;
+}
+
+enum Suit implements Colorful {
+ case Hearts;
+ case Diamonds;
+ case Clubs;
+ case Spades;
+
+ public function color(): string {
+ return match ($this) {
+ self::Hearts, self::Diamonds => 'Red',
+ self::Clubs, self::Spades => 'Black',
+ };
+ }
+}
+
+echo Suit::Hearts->color() . "\n";
+echo Suit::Diamonds->color() . "\n";
+echo Suit::Clubs->color() . "\n";
+echo Suit::Spades->color() . "\n";
+
+?>
+--EXPECT--
+Red
+Red
+Black
+Black