calabrothers / php-ds-enum
PHP 枚举支持
1.0.0
2020-01-19 21:20 UTC
Requires (Dev)
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-20 09:59:46 UTC
README
类集合,用于支持枚举数据类型。
安装
composer require calabrothers/php-ds-enum
测试
composer install
composer test
如何使用
枚举库提供两个基本类
- Enum
- EnumUnique
枚举类
use Ds\Enum;
class MyEnum extends Enum {
public const FOO = 0;
public const BAR = 0;
}
与C++类似,枚举允许重复值,在这种情况下是FOO和BAR。MyEnum的内部表示是整数。您可以使用经典的对象构造函数
$oObj = new MyEnum(0);
或者从工厂函数
$oObj = MyEnum::FOO();
或者使用复制构造函数
$oObj = new MyEnum(MyEnum::FOO());
或者从字符串
$oObj = MyEnum::fromString('FOO');
然后您可以使用经典的比较运算符
echo ($oObj == MyEnum::FOO() ? "Oh yeah" : "uhm"); // Oh yeah
EnumUnique类
use Ds\Enum;
class MyEnumUnique extends EnumUnique {
public const FOO = 0;
public const BAR = 1;
}
对于这个类
$oObj = MyEnumUnique::FOO();
echo ($oObj == MyEnumUnique::FOO() ? "Oh yeah" : "uhm"); // Oh yeah
echo ($oObj == MyEnumUnique::BAR() ? "uhm" : "not bad"); // not bad
默认值
这两个基本类都支持默认值。例如,具有默认值的唯一类将是
use Ds\Enum;
class MyEnumUniqueDef extends EnumUnique {
public const __DEFAULT__ = 0;
public const FOO = 0;
public const BAR = 1;
}
然后您也可以使用默认构造函数
$oObj = new MyEnumUniqueDef();
echo ($oObj == MyEnumUniqueDef::FOO() ? "Oh yeah" : "uhm"); // Oh yeah
致谢
支持高质量代码
许可证
MIT许可证(MIT)。有关更多信息,请参阅LICENSE。