重要的是要注意,这里的描述没有将枚举值描述为常量。一些语言(如 C、C++ 和 C#)将枚举视为命名整数列表,在这些语言中使用枚举只是使用整数。PHP 不会这样做。
与 PHP 的布尔值是它们自己的类型,而不是仅具有整数 1 和 0 的常量一样,枚举是它自己的类型。它不是一堆被赋予了名称的整数(或字符串),也不应该被如此看待或使用。
如果需要在程序外部(消息、UI、数据库存储、线路协议等)进行通信,则枚举只需要由整数或字符串之类的原始值支持,在这种情况下,它必须从其本地 PHP 值转换或转换为其本地 PHP 值(这在支持的枚举页面上再次提到)。如果在自己的程序中来回转换枚举及其支持值以完成任何事情,那么您可能错过了枚举的意义。
您可能希望枚举具有比纯的独立但否则没有描述性的值(您可能至少希望它们是有序的)更多结构。但是,所有这些操作都应该通过额外的函数封装在枚举类本身中。