百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
P

php-enum

> 编程语言
开源

PHP 中缺少 enum,灵感来自 SplEnum

2.7K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

PHP 中缺少 enum,灵感来自 SplEnum

受 SplEnum 启发的 PHP 枚举实现

[![GitHub Actions][GA 图片]][GA 链接] [![Psalm Shepherd][Shepherd 图片]][Shepherd 链接]

此项目的维护通过 Tidelift 获得支持。

为什么?

首先,也是最主要的是,SplEnum 并未集成到 PHP 中,你需要单独安装该扩展。

使用枚举代替类常量具有以下优势:

  • 你可以将枚举用作参数类型:function setAction(Action $action) {
  • 你可以将枚举用作返回类型:function getAction() : Action {
  • 你可以通过方法丰富枚举(例如 format、parse 等)
  • 你可以扩展枚举以添加新值(将枚举设为 final 可防止此操作)
  • 你可以获取所有可能值的列表(见下文)

此枚举类并非旨在替代类常量,而仅在有意义时使用。

安装

composer require myclabs/php-enum

声明

php
use MyCLabs\Enum\Enum;

/**
 * Action enum
 *
 * @extends Enum<Action::*>
 */
final class Action extends Enum
{
    private const VIEW = 'view';
    private const EDIT = 'edit';
}

用法

php
$action = Action::VIEW();

// or with a dynamic key:
$action = Action::$key();
// or with a dynamic value:
$action = Action::from($value);
// or
$action = new Action($value);

如你所见,静态方法会自动实现,以提供对枚举值的快速访问。

使用类常量相比,一个优势是能够将枚举用作参数类型:

php
function setAction(Action $action) {
    // ...
}

文档

  • __construct() 构造函数会检查该值是否存在于枚举中
  • __toString() 你可以 echo $myValue,它会显示枚举值(常量的值)
  • getValue() 返回枚举的当前值
  • getKey() 返回当前值在枚举中的键
  • equals() 测试枚举实例是否相等(如果枚举值相等则返回 true,否则返回 false)

静态方法:

  • from() 创建一个枚举实例,检查

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

PHPenumphpphp-enum

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言