petrknap / php-enum
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
条款授权。