summaryrefslogtreecommitdiff
path: root/Zend/tests/enum/backed-tryFrom.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/enum/backed-tryFrom.phpt')
-rw-r--r--Zend/tests/enum/backed-tryFrom.phpt40
1 files changed, 40 insertions, 0 deletions
diff --git a/Zend/tests/enum/backed-tryFrom.phpt b/Zend/tests/enum/backed-tryFrom.phpt
new file mode 100644
index 0000000000..81c36fcc2b
--- /dev/null
+++ b/Zend/tests/enum/backed-tryFrom.phpt
@@ -0,0 +1,40 @@
+--TEST--
+BackedEnum::tryFrom()
+--FILE--
+<?php
+
+enum Suit: string {
+ case Hearts = 'H';
+ case Diamonds = 'D';
+ case Clubs = 'C';
+ case Spades = 'S';
+}
+
+var_dump(Suit::tryFrom('H'));
+var_dump(Suit::tryFrom('D'));
+var_dump(Suit::tryFrom('C'));
+var_dump(Suit::tryFrom('S'));
+var_dump(Suit::tryFrom('X'));
+
+enum Foo: int {
+ case Bar = 1;
+ case Baz = 2;
+ case Beep = 3;
+}
+
+var_dump(Foo::tryFrom(1));
+var_dump(Foo::tryFrom(2));
+var_dump(Foo::tryFrom(3));
+var_dump(Foo::tryFrom(4));
+
+?>
+--EXPECT--
+enum(Suit::Hearts)
+enum(Suit::Diamonds)
+enum(Suit::Clubs)
+enum(Suit::Spades)
+NULL
+enum(Foo::Bar)
+enum(Foo::Baz)
+enum(Foo::Beep)
+NULL