petrknap/php-enum

此包已被放弃,不再维护。作者建议使用petrknap/enum包。

PHP的枚举类型

资助包维护!
其他

安装量: 2,345

依赖者: 1

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

公开问题: 0

语言:Dockerfile

v3.0.1 2023-12-26 19:58 UTC

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条款授权。