calabrothers/php-ds-enum

1.0.0 2020-01-19 21:20 UTC

This package is auto-updated.

Last update: 2024-09-20 09:59:46 UTC


README

Build Status Coverage Status Total Downloads License

类集合,用于支持枚举数据类型。

安装

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

致谢

支持高质量代码

Foo

许可证

MIT许可证(MIT)。有关更多信息,请参阅LICENSE