giritli / enum
该包最新版本(v0.1.5)没有可用的许可信息。
易于使用的枚举类。
v0.1.5
2019-03-20 16:46 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- phpunit/phpunit: ~4.0
README
枚举
PHP 缺少枚举类型。这是 PHP 中枚举类型的一个实现。它允许你定义自己的枚举类型并将它们用作值对象。
安装
要使用 composer 安装此包,请运行以下命令
composer require giritli/enum
示例用法
创建一个将扩展 Enum 类的初始类。
final class StatusEnum extends Giritli\Enum\Enum { const draft = 'draft'; const active = 'active'; const archived = 'archived'; const cancelled = 'cancelled'; protected $default = self::draft; }
就这么简单。你现在有一个完整的枚举。由于枚举类旨在作为数据类型使用,建议所有枚举类都应该是最终的,但这当然取决于具体的使用情况。
示例用法
// This status defaults to draft as specified in the class $status = new StatusEnum(); // You can instantiate an enum by value $status = new StatusEnum('active'); $status = new StatusEnum(StatusEnum::active); // Or by name $status = StatusEnum::draft(); // Get the ordinal value of the enum $status->getOrdinal(); // 0 // Get the value of the enum $status->getValue(); // draft echo $status; // Get the key of the enum $status->getKey(); // draft // Get all values of an enum $status->getValues(); StatusEnum::getValues(); // Get all ordinal values of an enum $status->getOrdinals(); StatusEnum::getOrdinals(); // Get all key values of an enum $status->getKeys(); StatusEnum::getKeys();
键是类常量的名称,值是类常量的值。通常这些值应该是相同的,但在某些情况下这可能不成立。
一旦实例化,枚举的值就不能更改。你需要实例化一个不同值的新的对象。枚举值也不能动态更改。
它如何工作?
枚举值由定义的类常量指定。可以通过传递枚举值来实例化枚举,如果没有传递任何值且有默认枚举值,也可以实例化枚举。还可以通过调用枚举名称作为方法来实例化枚举。