buuum/phenum

Php 枚举

v1.0.0 2017-03-16 12:25 UTC

This package is auto-updated.

Last update: 2024-09-17 20:45:24 UTC


README

Packagist license

安装

系统要求

要使用 Buuum\PhEnum,您需要 PHP >= 7.0.0,但推荐使用最新稳定版本的 PHP。

Composer

Buuum\PhEnum 可在 Packagist 上找到,并可以使用 Composer 进行安装

composer require buuum/phenum

手动

只要您的自动加载器遵循 PSR-0 或 PSR-4 标准,您就可以使用自己的自动加载器。只需将 src 目录的内容放入您的 vendor 目录中。

定义

final class UserEnum extends \PhEnum\PhEnum
{
    const SEX_MALE = 1;
    const SEX_FEMALE = 2;

}

方法

$enum = new UserEnum(UserEnum::SEX_MALE);
$enum_female = new UserEnum(UserEnum::SEX_FEMALE);

$enum->equals($enum_female); // (false)
$enum->getValue(); // (1)
$enum->getKey(); // (SEX_MALE)

静态方法

UserEnum::SEX_MALE(); // instance of PhEnum

UserEnum::isValidKey('SEX_MALE'); // (true)
UserEnum::isValid(5); // (false)
UserEnum::search(UserEnum::SEX_FEMALE); // (SEX_FEMALE)
UserEnum::toArray(); // (array(2) { ["SEX_MALE"]=> int(1) ["SEX_FEMALE"]=> int(2) })
UserEnum::keys(); // (array(2) {
                        [0]=>
                        string(8) "SEX_MALE"
                        [1]=>
                        string(10) "SEX_FEMALE"
                      })
UserEnum::values(); // array(2) {
                         [0]=>
                         int(1)
                         [1]=>
                         int(2)
                       }

示例

案例 1

function demo(UserEnum $enum)
{
    return $enum->getValue();
}
demo(new UserEnum(UserEnum::SEX_MALE));
// or
demo(UserEnum::SEX_MALE());

案例 2

function demo($enum)
{
    if(!UserEnum::isValid($enum)){
        throw new Exception("Value not valid");
    }
    return false;
}
demo(UserEnum::SEX_FEMALE);

许可证

MIT 许可证 (MIT)

版权所有 © 2017

在此特此授予任何获得本软件及其相关文档文件(“软件”)副本的人免费使用权,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向提供软件的人授予此类权利,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定用途适用性或非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,源于、因之或与软件或其使用或其它交易有关。