枚举

由于 PHP 本身不支持枚举类型,imi 特别基于注解实现了枚举类。

枚举类定义

继承Imi\Enum\BaseEnum类,然后在类常量上面写上注解@EnumItem,参数是当前常量的文字说明。

  1. <?php
  2. namespace ImiDemo\HttpDemo\MainServer\Enum;
  3. use Imi\Enum\BaseEnum;
  4. use Imi\Enum\Annotation\EnumItem;
  5. class Status extends BaseEnum
  6. {
  7. /**
  8. * @EnumItem("正确")
  9. */
  10. const YES = 1;
  11. /**
  12. * @EnumItem("错误")
  13. */
  14. const NO = 0;
  15. }

使用

  1. // 根据名称获得常量值
  2. Status::getValue('YES');
  3. // 根据值获得文字说明
  4. Status::getText(Status::YES);
  5. // 根据值获得 @EnumItem 注解对象
  6. Status::getData(Status::YES);
  7. // 获取枚举类中所有名称
  8. Status::getNames();
  9. // 获取枚举类中所有值
  10. Status::getValues();