支持枚举格式?

问题描述 投票:0回答:1

我有一个性别枚举:

enum Gender: string
{
    use EnumToArray;

    case MALE = 'male';
    case FEMALE = 'female';
    case NON_BINARY = 'non-binary';
    case PREFER_NOT_TO_SAY = 'prefer not to say';

    public function label(): string
    {
        return match ($this) {
            self::MALE => 'Male',
            self::FEMALE => 'Female',
            self::NON_BINARY => 'Non-binary',
            self::PREFER_NOT_TO_SAY => 'Prefer Not To Say',
        };
    }
}

我有一个

label
方法,可以返回用户友好的标签,用于表单等。

但是使用存储在我的数据库中的支持的枚举值:

    case MALE = 'male';
    case FEMALE = 'female';
    case NON_BINARY = 'non-binary';
    case PREFER_NOT_TO_SAY = 'prefer not to say';

这些值应该是什么?如果像我一样使用字符串,是否有标准格式,例如

prefer_not_to_say
还是
preferNotToSay

是否应该使用字符串?我应该使用

0,1,2,3
吗?或者我应该只使用字母
m,f,n,x

php
1个回答
0
投票

关于名称支持的枚举值没有任何严格的规则,我们知道它们可以只是标量类型值

int
string
,并且它们必须是唯一的。正如我在 PHP 库中看到的,常见使用 lowercase。例如:

enum Sort: string
{
    case Ascending = 'asc';
    case Descending = 'desc';
}

在我看来,在它们之间使用空格不是一个好主意

'prefer not to say'

© www.soinside.com 2019 - 2024. All rights reserved.