php定义枚举,php中枚举类的应用

php中枚举类的应用

发布时间:2020-06-22 17:49:08

来源:亿速云

阅读:89

作者:Leah

这篇文章将为大家详细讲解有关php中枚举类的应用,文章内容质量较高,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

安装

composer require fangx/php-enum

创建

使用 ./vendor/bin/enum 命令创建一个枚举类../vendor/bin/enum FooEnum --enum="1=foo" --enum="b=bar" --path=Enums

该命令默认在 当前目录的 Enums 目录下创建一个 FooEnum.php 文件. 文件内容如下:<?phpnamespace Enums;use Fangx\Enum\AbstractEnum;class FooEnum extends AbstractEnum{

const FOO = "f", __FOO = "foo";

const BAR = "b", __BAR = "bar";}

使用

枚举类默认继承 \Fangx\Enum\AbstractEnum. 可以静态调用以下方法:toArray(Format $format = null, Filter $filter = null)

toJson(Format $format = null, Filter $filter = null)

desc($key, $default = 'Undefined')

获取所有的枚举值<?phpclass FooEnum extends \Fangx\Enum\AbstractEnum{

const FOO = 'f', __FOO = 'foo';

const BAR = 'b', __BAR = 'bar';}/**

* ['f' => 'foo', 'b' => 'bar']

*/FooEnum::toArray();

获取枚举值的描述信息<?phpclass FooEnum extends \Fangx\Enum\AbstractEnum{

const FOO = 'f', __FOO = 'foo';

const BAR = 'b', __BAR = 'bar';}/**

* "foo"

*/FooEnum::desc('f');/**

* "bar"

*/FooEnum::desc(FooEnum::BAR);

使用格式来约束返回值<?phpclass FooFormat implements \Fangx\Enum\Contracts\Format{

public function parse(\Fangx\Enum\Contracts\Definition $definition): array

{

return [['key' => $definition->getKey() , 'value' => $definition->getValue()]];

}}class FooEnum extends \Fangx\Enum\AbstractEnum{

const FOO = 'f', __FOO = 'foo';

const BAR = 'b', __BAR = 'bar';}/**

* [['key' => 'f', 'value' => 'foo'], ['key' => 'b', 'value' => 'bar'],]

*/$format = new FooFormat();FooEnum::toArray($format);

通过规则来过来过滤枚举值.class FooFilter implements \Fangx\Enum\Contracts\Filter{

public function __invoke(\Fangx\Enum\Contracts\Definition $definition)

{

return $definition->getKey() === 'f';

}}/**

* ['f' => 'foo']

*/$filter = new FooFilter();FooEnum::toArray(null, $filter);

使用自定义的集合来作为所有的枚举类型, 其他使用方法与 FooEnum 一致.<?phpclass BarEnum extends \Fangx\Enum\AbstractEnum{

public function all()

{

return [

new \Fangx\Enum\Definition('f', 'foo'),

new \Fangx\Enum\Definition('b', 'bar'),

];

}}

以上就是php中枚举类的应用,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注亿速云行业资讯,感谢各位的阅读。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值