枚举概述

(PHP 8 >= 8.1.0)

枚举,或“枚举”,允许开发人员定义一个自定义类型,该类型仅限于一组离散的可能值之一。这在定义领域模型时尤其有用,因为它能够“使无效状态无法表示”。

枚举出现在许多语言中,并具有各种不同的功能。在 PHP 中,枚举是一种特殊的对象。枚举本身是一个类,它的所有可能情况都是该类的单实例对象。这意味着枚举情况是有效的对象,可以用于任何可以使用的对象,包括类型检查。

枚举最常见的示例是内置的布尔类型,它是一个枚举类型,其合法值为 truefalse。枚举允许开发人员定义自己的任意健壮的枚举。

添加笔记

用户贡献的笔记 1 笔记

Hayley Watson
1 年前
重要的是要注意,这里的描述没有将枚举值描述为常量。一些语言(如 C、C++ 和 C#)将枚举视为命名整数列表,在这些语言中使用枚举只是使用整数。PHP 不会这样做。

与 PHP 的布尔值是它们自己的类型,而不是仅具有整数 1 和 0 的常量一样,枚举是它自己的类型。它不是一堆被赋予了名称的整数(或字符串),也不应该被如此看待或使用。

如果需要在程序外部(消息、UI、数据库存储、线路协议等)进行通信,则枚举只需要由整数或字符串之类的原始值支持,在这种情况下,它必须从其本地 PHP 值转换或转换为其本地 PHP 值(这在支持的枚举页面上再次提到)。如果在自己的程序中来回转换枚举及其支持值以完成任何事情,那么您可能错过了枚举的意义。

您可能希望枚举具有比纯的独立但否则没有描述性的值(您可能至少希望它们是有序的)更多结构。但是,所有这些操作都应该通过额外的函数封装在枚举类本身中。
To Top