我有一个性别枚举:
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
?
关于名称支持的枚举值没有任何严格的规则,我们知道它们可以只是标量类型值
int
或string
,并且它们必须是唯一的。正如我在 PHP 库中看到的,常见使用 lowercase。例如:
enum Sort: string
{
case Ascending = 'asc';
case Descending = 'desc';
}
在我看来,在它们之间使用空格不是一个好主意
'prefer not to say'
)