news 2026/6/14 19:26:51

PHP 8.1 枚举(Enums)详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP 8.1 枚举(Enums)详解

目录

  1. 什么是枚举?
  2. 基本语法
  3. 纯值枚举
  4. 回退枚举
  5. 枚举方法
  6. 接口实现
  7. 实用示例
  8. 注意事项

什么是枚举?

枚举是一种特殊的数据类型,允许定义一组命名的常量值。在 PHP 8.1 之前,开发者通常使用类常量或数组来模拟枚举,但 PHP 8.1 引入了原生枚举支持,提供了更好的类型安全性和功能。

基本语法

// 定义纯值枚举enumStatus:string{caseDRAFT='draft';casePUBLISHED='published';caseARCHIVED='archived';}// 使用枚举$status=Status::DRAFT;// 获取枚举值echo$status->value;// 输出: draft// 通过值获取枚举实例$status=Status::from('draft');// 或者安全获取(失败时返回 null)$status=Status::tryFrom('draft');

纯值枚举(Pure Enums)

// 整数类型的枚举enumPriority:int{caseLOW=1;caseMEDIUM=2;caseHIGH=3;caseCRITICAL=4;}// 字符串类型的枚举enumColor:string{caseRED='#FF0000';caseGREEN='#00FF00';caseBLUE='#0000FF';}// 使用示例$priority=Priority::HIGH;echo$priority->value;// 输出: 3echo$priority->name;// 输出: HIGH// 类型提示functionsetPriority(Priority$priority):void{echo"Setting priority to:{$priority->value}\n";}setPriority(Priority::CRITICAL);

回退枚举(Backed Enums)

// 回退枚举可以具有标量值(int 或 string)enumHttpStatus:int{caseOK=200;case
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 7:15:40

Langchain-Chatchat同义词扩展:提升检索召回率的技巧

Langchain-Chatchat同义词扩展:提升检索召回率的技巧 在企业知识库系统中,一个常见的尴尬场景是:员工确信公司文档里写明了“年休假可以调休”,但当他输入“怎么请年假?”时,系统却返回“未找到相关信息”。…

作者头像 李华
网站建设 2026/6/15 7:13:39

终极极简作品集模板:快速打造专业个人网站

终极极简作品集模板:快速打造专业个人网站 【免费下载链接】simplefolio ⚡️ A minimal portfolio template for Developers 项目地址: https://gitcode.com/gh_mirrors/si/simplefolio 还在为如何展示个人作品而烦恼吗?想要一个既专业又易于维护…

作者头像 李华
网站建设 2026/6/15 7:14:12

Langchain-Chatchat冷启动问题解决:首次加载提速50%的方法

Langchain-Chatchat冷启动问题解决:首次加载提速50%的方法 在企业级AI应用落地的过程中,一个常见的痛点浮出水面:明明模型能力强大、问答准确,但每次服务重启后用户却要等待数分钟才能开始使用——这背后正是本地知识库系统的“冷…

作者头像 李华
网站建设 2026/6/15 13:22:06

java计算机毕业设计停车场管理系统 智慧校园停车泊位预约与收费平台 基于Spring Boot的车库车辆出入与费用结算系统

计算机毕业设计停车场管理系统ws44e9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。校外车辆涌入、校内车位饱和、临停车辆随意占位,高校地下停车场每天上演“抢位大…

作者头像 李华
网站建设 2026/6/15 8:27:19

Langchain-Chatchat多跳问答能力测试:能否回答需要推理的问题?

Langchain-Chatchat多跳问答能力测试:能否回答需要推理的问题? 在企业知识管理日益复杂的今天,一个智能问答系统是否“真懂”业务,往往不在于它能多快回答“公司去年营收是多少”,而在于它能否理清“张三所在的部门上季…

作者头像 李华
网站建设 2026/6/15 8:27:20

从random随机数看验证码重复数字

本文分享自天翼云开发者社区《从random随机数看验证码重复数字》.作者:王****淋 ## 推导: 1. 有6个不同数字 - (0个重复数字: 111111): $$p(6) C_{10}^6 * 6! \div 10^6$$ 2. 有5个不同数字 - (某个数字重复了2次: 11112): $$p(5) (\frac{C_{10}^…

作者头像 李华