typiqally / enum
此包已被废弃且不再维护。没有建议替代包。
PHP 枚举类型
1.0-alpha2
2021-02-01 14:00 UTC
Requires
- php: ^7.4 || ^8.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^9.4
This package is auto-updated.
Last update: 2021-10-29 15:28:35 UTC
README
在当前版本的PHP中,不支持enum
类型。此包将引入PHP中的enum
类型。用例基于Java枚举类型。枚举类型是一种特殊的数据类型,允许变量成为一组预定义常量的集合。变量必须等于为其预定义的值之一。
注意
该项目目前正在开发中,仍处于alpha阶段。
安装
可以通过执行以下命令来安装此包
composer require typiqally/enum
基本
可以像这样创建基本枚举
use Typiqally\Enum\Enum; /** * @method static self NORTH() * @method static self EAST() * @method static self SOUTH() * @method static self WEST() */ class Direction extends Enum { }
使用
它们的使用方法如下
public function walk(Direction $direction): void { //Walk logic } $this->walk(Direction::NORTH());
值
枚举常量可以具有mixed
值,这意味着它可以具有类似Java枚举类型的动态值。值的分配方式如下
use Typiqally\Enum\Enum; /** * @method static self NORTH() * @method static self EAST() * @method static self SOUTH() * @method static self WEST() */ class Direction extends Enum { protected static function values(): array { return [ 'NORTH' => [ 'degrees' => 0 | 360 ], 'EAST' => [ 'degrees' => 90 ], 'SOUTH' => [ 'degrees' => 180 ], 'WEST' => [ 'degrees' => 270 ] ]; } public function getDegrees(): int { return $this->value['degrees']; } }
使用
它们的使用方法如下
public function walk(Direction $direction): void { $degrees = $direction->getDegrees(); } $this->walk(Direction::NORTH());
许可证
该项目使用GPL-3.0许可证。有关完整的许可证文本,请参阅LICENSE.md。