如何在无内置支持的PHP中正确实现枚举(Enum)?
大家好!我是一名PHP初学者,遇到了一个问题。在其他语言(Java、C#)中,有方便的enum构造,可以定义一组固定的常量。例如,订单状态:“新”、“处理中”、“已发货”、“已送达”。
在PHP中,我没有找到内置的enum。我尝试使用类的普通常量:
class OrderStatus {
const NEW = 'new';
const PROCESSING = 'processing';
const SHIPPED = 'shipped';
const DELIVERED = 'delivered';
}
$status = OrderStatus::NEW;
但这很不方便。我无法检查变量$status是否只包含允许的值之一。可能会意外赋值$status = 'invalid_status',而不会报错。也无法为每个值添加方法(例如,获取状态的中文描述)。
如何在PHP中正确组织枚举?是否有某些模式?