ReflectionEnumBackedCase_getBackingValue.phpt 809 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. --TEST--
  2. ReflectionEnumBackedCase::getBackingValue()
  3. --FILE--
  4. <?php
  5. enum Enum_ {
  6. case Foo;
  7. }
  8. enum IntEnum: int {
  9. case Foo = 0;
  10. }
  11. enum StringEnum: string {
  12. case Foo = 'Foo';
  13. }
  14. try {
  15. var_dump(new ReflectionEnumBackedCase(Enum_::class, 'Foo'));
  16. } catch (ReflectionException $e) {
  17. echo $e->getMessage() . "\n";
  18. }
  19. try {
  20. var_dump(new ReflectionEnumBackedCase([], 'Foo'));
  21. } catch (Error $e) {
  22. echo $e->getMessage() . "\n";
  23. }
  24. var_dump((new ReflectionEnumBackedCase(IntEnum::class, 'Foo'))->getBackingValue());
  25. var_dump((new ReflectionEnumBackedCase(StringEnum::class, 'Foo'))->getBackingValue());
  26. ?>
  27. --EXPECT--
  28. Enum case Enum_::Foo is not a backed case
  29. ReflectionEnumBackedCase::__construct(): Argument #1 ($class) must be of type object|string, array given
  30. int(0)
  31. string(3) "Foo"