petrknap / enum
此包已被弃用且不再维护。未建议替代包。
PHP 枚举类型
v3.0.1
2023-12-26 19:58 UTC
Requires
- php: >=8.0
- petrknap/shorts: ^1.3
Requires (Dev)
- nunomaduro/phpinsights: ^2.9
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
- squizlabs/php_codesniffer: ^3.7
README
什么是 Enum?
在计算机编程中,枚举类型(也称为枚举或枚举,在 R 编程语言中称为因子,在统计学中称为分类变量)是一种数据类型,由一组称为元素、成员、枚举或枚举器的命名值组成。枚举器名称通常是作为语言中的常量行为的标识符。已声明为具有枚举类型的变量可以分配任何枚举器作为值。换句话说,枚举类型具有不同的值,可以比较和分配,但程序员未指定它们在计算机内存中的任何特定具体表示;编译器和解释器可以任意表示它们。-- 枚举类型 - 维基百科,自由的百科全书
为什么使用 Enum 而不是常量?
因为使用枚举比使用常量更安全、更不令人害怕。不相信我?看看这段代码
use PetrKnap\Enum\Readme\MyBoolean; $isTrue = function (int $myBoolean) { switch($myBoolean) { case MyBoolean::MY_TRUE: return true; case MyBoolean::MY_FALSE: return false; } }; var_dump($isTrue(MyBoolean::MY_TRUE)); // true - correct var_dump($isTrue(MyBoolean::MY_FALSE)); // false - correct var_dump($isTrue(0)); // none var_dump($isTrue(1)); // true - expected var_dump($isTrue(2)); // false var_dump($isTrue((int) true)); // true - expected var_dump($isTrue((int) false)); // none
现在用 枚举 代替常量执行相同的代码
use PetrKnap\Enum\Readme\MyBoolean; $isTrue = function (MyBoolean $myBoolean): bool { switch($myBoolean) { case MyBoolean::MyTrue: return true; case MyBoolean::MyFalse: return false; } }; var_dump($isTrue(MyBoolean::MyTrue)); // true - correct var_dump($isTrue(MyBoolean::MyFalse)); // false - correct
运行 composer require petrknap/enum
来安装。您可以通过 捐赠 来支持此项目。该项目受 LGPL-3.0-or-later
条款 许可。