devionz/enum

PHP 8.1 之前简单的枚举实现

1.0 2022-07-01 20:34 UTC

This package is auto-updated.

Last update: 2024-09-29 06:09:09 UTC


README

安装

composer require devionz/enum

声明

use Devionz\Enum\Enum;

class Status extends Enum
{
    private const DRAFT = 'draft';
    private const PUBLISHED = 'published';
    private const PENDING = 'pending';
}

示例

function getValue(Status $status) {
    return $status->value;
}

$enum1 = Status::DRAFT();
$enum2 = Status::from('draft');
$enum3 = Status::tryFrom('draft');

echo $enum1->name; // 'DRAFT'
echo $enum1->value // 'draft'
echo getValue($enum1); // 'draft

var_dump($enum1 === $enum2); // Returns true