summaryrefslogtreecommitdiff
path: root/Zend/tests/enum/backed-from-invalid-type.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/enum/backed-from-invalid-type.phpt')
-rw-r--r--Zend/tests/enum/backed-from-invalid-type.phpt34
1 files changed, 34 insertions, 0 deletions
diff --git a/Zend/tests/enum/backed-from-invalid-type.phpt b/Zend/tests/enum/backed-from-invalid-type.phpt
new file mode 100644
index 0000000000..3f35bef64f
--- /dev/null
+++ b/Zend/tests/enum/backed-from-invalid-type.phpt
@@ -0,0 +1,34 @@
+--TEST--
+BackedEnum::from() reject invalid type
+--FILE--
+<?php
+
+enum Suit: string {
+ case Hearts = 'H';
+ case Diamonds = 'D';
+ case Clubs = 'C';
+ case Spades = 'S';
+}
+
+try {
+ var_dump(Suit::from(42));
+} catch (Error $e) {
+ echo $e->getMessage() . "\n";
+}
+
+enum Foo: int {
+ case Bar = 0;
+ case Baz = 1;
+}
+
+try {
+ var_dump(Foo::from('H'));
+} catch (Error $e) {
+ echo $e->getMessage() . "\n";
+}
+
+
+?>
+--EXPECT--
+"42" is not a valid backing value for enum "Suit"
+Foo::from(): Argument #1 ($value) must be of type int, string given