static-methods.phpt 499 B

12345678910111213141516171819202122232425262728
  1. --TEST--
  2. Enum supports static methods
  3. --FILE--
  4. <?php
  5. enum Size {
  6. case Small;
  7. case Medium;
  8. case Large;
  9. public static function fromLength(int $cm) {
  10. return match(true) {
  11. $cm < 50 => static::Small,
  12. $cm < 100 => static::Medium,
  13. default => static::Large,
  14. };
  15. }
  16. }
  17. var_dump(Size::fromLength(23));
  18. var_dump(Size::fromLength(63));
  19. var_dump(Size::fromLength(123));
  20. ?>
  21. --EXPECT--
  22. enum(Size::Small)
  23. enum(Size::Medium)
  24. enum(Size::Large)