【发布时间】:2022-09-23 20:00:58
【问题描述】:
如何指定要采用的参数类型任何枚举值?
像function processEnum(enum $value) 这样的东西是理想的,但似乎什么都不存在?
enum Numbers: int {
case FIRST = 1;
case SECOND = 2;
}
enum Foo: string {
case BAR = \'bar\';
}
function printEnum($enumValue) {
echo $enumValue->value;
}
printEnum(Numbers::FIRST); // 1
printEnum(Foo::BAR); // \'bar\'
printEnum(\'fail\'); // I want to reject this!
此外,最好将支持的枚举与非支持的枚举或额外支持的类型分开;例如,作为字符串支持的枚举。