diff options
Diffstat (limited to 'Zend/tests/enum/backed-from-invalid-type.phpt')
-rw-r--r-- | Zend/tests/enum/backed-from-invalid-type.phpt | 34 |
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 |