BaseEnum.php 753 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace common\enums;
  3. use common\helpers\ArrayHelper;
  4. /**
  5. *
  6. * Class BaseEnum
  7. * @package common\enums
  8. * @author qimall
  9. */
  10. abstract class BaseEnum
  11. {
  12. /**
  13. * @return array
  14. */
  15. abstract public static function getMap(): array;
  16. /**
  17. * @param $key
  18. * @return string
  19. */
  20. public static function getValue($key): string
  21. {
  22. return static::getMap()[$key] ?? '';
  23. }
  24. /**
  25. * @param array $keys
  26. * @return array
  27. */
  28. public static function getValues(array $keys) : array
  29. {
  30. return ArrayHelper::filter(static::getMap(), $keys);
  31. }
  32. /**
  33. * @return array
  34. */
  35. public static function getKeys(): array
  36. {
  37. return array_keys(static::getMap());
  38. }
  39. }