adam-lutka / php-enum
PHP 实现枚举类型
v1.0.2
2019-11-30 14:24 UTC
Requires (Dev)
- phpunit/phpunit: ^7.1
This package is auto-updated.
Last update: 2024-09-29 05:35:47 UTC
README
枚举类型由类表示。特定枚举类型的值由 @method 注释表示,这可以启用代码补全,且不会引起重复。
<?php require_once('vendor/autoload.php'); /** * @method static TypeEnum TYPE_1() * @method static $this TYPE_2() */ final class TypeEnum extends \AL\PhpEnum\Enum {} var_dump((string)TypeEnum::TYPE_2()); // string(6) "TYPE_2" var_dump(TypeEnum::TYPE_2()->getValue()); // string(6) "TYPE_2" var_dump(TypeEnum::TYPE_1()->getOrder()); // int(0) var_dump(TypeEnum::TYPE_2()->getOrder()); // int(1) var_dump(TypeEnum::TYPE_2() === TypeEnum::TYPE_2()); // bool(true) var_dump(TypeEnum::TYPE_2() == TypeEnum::TYPE_2()); // bool(true) var_dump(TypeEnum::TYPE_1() === TypeEnum::TYPE_2()); // bool(false) var_dump(TypeEnum::TYPE_1() == TypeEnum::TYPE_2()); // bool(false) var_dump(TypeEnum::parse('TYPE_2') === TypeEnum::TYPE_2()); // bool(true) var_dump(TypeEnum::tryParse('NOT_EXIST')); // NULL var_dump(TypeEnum::inOrder(0) === TypeEnum::TYPE_1()); // bool(true) var_dump(TypeEnum::tryInOrder(1000)); // NULL
入门指南
先决条件
代码需要 PHP 7.1 或更高版本。
安装
composer require adam-lutka/php-enum
运行测试
composer install
vendor/bin/phpunit