froler314 / enum
枚举库
v4.2.3
2024-03-14 12:06 UTC
Requires
- php: >=7.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.9
- phpunit/phpunit: ^8.5
This package is not auto-updated.
Last update: 2024-09-26 14:31:52 UTC
README
枚举对象库
简单使用
使用常量创建枚举类
class MyEnum extends Enum { const CONSTANT_A = 'value_a'; const CONSTANT_B = 'value_b'; }
作为对象或标量使用它
$enumObject = MyEnum::getInstance(MyEnum::CONSTANT_A); echo $enumObject->getValue(); // prints 'value_a' echo $enumObject; // also prints 'value_a'
通过传递整个对象而不是标量来验证枚举
function someFunction(MyEnum $enumObject): void { // ... } $enumObject = MyEnum::getInstance(MyEnum::CONSTANT_A); someFunction($enumObject);
比较实例
function compareFunction(MyEnum $firstEnumObject, MyEnum $secondEnumObject): bool { return $firstEnumObject === $secondEnumObject // both variants || $firstEnumObject->equals($secondEnumObject) // are identical }
通过魔法静态调用获取枚举实例
/** * @method static self valueA() * @method static self valueB() */ class MyEnum extends Enum { use MagicStaticCallEnum; // use MagicStaticCallEnum trait const CONSTANT_A = 'value_a'; const CONSTANT_B = 'value_b'; } $enumObject = MyEnum::valueA(); // instead of MyEnum::getInstance(MyEnum::CONSTANT_A)