PHP 的枚举助手(Enum Helpers)
PHP 8.1 的发布为 PHP 带来了原生的 枚举 能力。 Composer 包 archtechx/enums 建立在原生特性的基础上,旨在让使用枚举更加灵活,让人喜爱。
使用这些库特性, 你可以在任何 PHP 项目中为你的枚举添加以下便利:
- Invokable case - 通过调用它来获取支持的枚举的值
- Names - 返回枚举中的案例名称列表
- Values - 返回枚举中的 case 值列表
- Options - 返回案例名称和值的关联数组
鉴于上述功能,以下是包的 README 中的一些示例。
首先,InvokableCases
特性的工作原理如下:
// Invokable
use ArchTech\Enums\InvokableCases;
enum TaskStatus: int
{
use InvokableCases;
case INCOMPLETE = 0;
case COMPLETED = 1;
case CANCELED = 2;
}
TaskStatus::INCOMPLETE(); // 0
TaskStatus::COMPLETED(); // 1
TaskStatus::CANCELED(); // 2
接下来,这里是如何从枚举中获取案例名称:
use ArchTech\Enums\Names;
enum TaskStatus: int
{
use Names;
case INCOMPLETE = 0;
case COMPLETED = 1;
case CANCELED = 2;
}
TaskStatus::names();
// ['INCOMPLETE', 'COMPLETED', 'CANCELED']
Values
特性可以返回一个可能的枚举值数组:
use ArchTech\Enums\Values;
enum TaskStatus: int
{
use Values;
case INCOMPLETE = 0;
case COMPLETED = 1;
case CANCELED = 2;
}
TaskStatus::values(); // [0, 1, 2]
最后,Options
特性返回名称和值的关联数组:
use ArchTech\Enums\Options;
enum TaskStatus: int
{
use Options;
case INCOMPLETE = 0;
case COMPLETED = 1;
case CANCELED = 2;
}
TaskStatus::options();
// ['INCOMPLETE' => 0, 'COMPLETED' => 1, 'CANCELED' => 2]
你可以了解有关此软件包的更多信息、获取完整的安装说明,并在 GitHub 上查看 源代码。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: