PHP 8.3 新特性:类常量枚举的妙用

简介: PHP 8.3 新特性:类常量枚举的妙用

PHP 8.3 新特性:类常量枚举的妙用

PHP 8.3 引入了增强的类常量枚举功能,让代码更加优雅和安全。让我们通过一个用户角色管理的例子来了解这个特性。

传统方式 vs 新特性

过去(PHP 8.2之前):

class UserRoles {
   
    const ADMIN = 'admin';
    const EDITOR = 'editor';
    const VIEWER = 'viewer';
}

// 使用时容易出错
$role = 'superadmin'; // 拼写错误,但不会报错
if ($role === UserRoles::ADMIN) {
    ... } // 永远不会执行

现在(PHP 8.3+):

enum UserRole: string {
   
    case ADMIN = 'admin';
    case EDITOR = 'editor';
    case VIEWER = 'viewer';
}

// 类型安全,自动补全
function checkPermission(UserRole $role): bool {
   
    return match($role) {
   
        UserRole::ADMIN => true,
        UserRole::EDITOR => false,
        UserRole::VIEWER => false,
    };
}

// 使用
checkPermission(UserRole::ADMIN); // ✅ 正确
checkPermission('admin'); // ❌ 编译错误

实际应用场景

在博客系统中,我们可以这样使用:

enum ArticleStatus: string {
   
    case DRAFT = 'draft';
    case PUBLISHED = 'published';
    case ARCHIVED = 'archived';
}

class Article {
   
    public function __construct(
        private ArticleStatus $status
    ) {
   }

    public function canEdit(): bool {
   
        return $this->status !== ArticleStatus::ARCHIVED;
    }

    public function show(): bool {
   
        return $this->status === ArticleStatus::PUBLISHED;
    }
}

优势总结

  1. 类型安全:编译时就能发现错误
  2. 代码可读:语义清晰,意图明确
  3. IDE友好:自动补全和重构支持
  4. 不可变性:枚举值不可修改,更安全

PHP 8.3 的枚举特性让开发者能够编写更健壮、更易维护的代码,是现代PHP开发的必备技能。

相关文章
|
11月前
|
消息中间件 人工智能 NoSQL
AgentScope x RocketMQ:打造企业级高可靠 A2A 智能体通信基座
Apache RocketMQ 推出轻量级通信模型 LiteTopic,专为 AI 时代多智能体协作设计。它通过百万级队列支持、会话状态持久化与断点续传能力,解决传统架构中通信脆弱、状态易失等问题。结合 A2A 协议与阿里巴巴 AgentScope 框架,实现高可靠、低延迟的 Agent-to-Agent 通信,助力构建稳定、可追溯的智能体应用。现已开源并提供免费试用,加速 AI 应用落地。
793 35
AgentScope x RocketMQ:打造企业级高可靠 A2A 智能体通信基座
|
7月前
|
人工智能 JavaScript PHP
Laravel + Vue 免费可商用 PHP 管理后台 CatchAdmin V5.3.0 发布:支持 AI Agent 开发
CatchAdmin V5.3.0 是基于 Laravel 13 + Vue3 的免费可商用后台框架,支持企业级权限、动态路由、代码生成等;本次重磅升级AI开发体验,内置AGENTS指引、9大AI Skills、多平台兼容及Context7实时文档,大幅提升后台开发效率。(239字)
630 1
Laravel + Vue 免费可商用 PHP 管理后台 CatchAdmin V5.3.0 发布:支持 AI Agent 开发
|
11月前
|
存储 人工智能 芯片
边缘 AI 芯片,为啥越来越“不像芯片”?聊聊这些年我看到的架构创新
边缘 AI 芯片,为啥越来越“不像芯片”?聊聊这些年我看到的架构创新
676 2
|
11月前
|
机器学习/深度学习 算法 算法框架/工具
基于yolov8的深度学习垃圾分类检测系统
本研究针对传统垃圾分类效率低、准确率不高等问题,提出基于YOLOv8与Python的深度学习检测系统。通过构建高质量标注数据集,利用YOLOv8强大的目标检测能力,实现垃圾的快速精准识别,提升分类自动化水平,助力环境保护与资源回收。
|
11月前
|
存储 弹性计算 人工智能
阿里云16核32G服务器价格多少?今年阿里云 16 核 32G 云服务器优惠配置价格及测评参考
阿里云16核32G服务器价格多少钱?今天给你提供阿里云16核32G云服务器的详细测评。关于阿里云16核32G云服务器的价格:阿里云16核32G云服务器的价格因不同的实例类型和配置选项而有所不同。一般来说,这种高配置的服务器适用于需要处理大规模数据或运行高负载业务的企业级用户。 具体的价格取决于服务器的实例类型、存储配置、网络带宽等因素。您可以访问阿里云的官方网站或联系其销售代表,获取更详细的报价和配置选项。请注意,这里提供的信息可能不是最新的,因为阿里云的价格和促销活动可能会随时调整。为了获取最准确的价格和配置信息,这款服务器具体详情建议参考。。
|
11月前
|
弹性计算 编解码 程序员
阿里云服务器又大降价了!2核2G配置云服务器测评及阿里云服务器活动内容揭秘
阿里云服务器又大降价了!2核2G配置云服务器测评及阿里云服务器活动内容揭秘!对于资深程序员来说,服务器的配置和价格都是选择的关键因素。而阿里云的2核2G3M轻量应用服务器,正是一款性价比极高的选择。阿里云针对新用户推出了前所未有的优惠活动。具体来说,新用户购买这款2核2G3M轻量应用服务器,可以享受秒杀的优惠,年付价格仅需61元。这样的价格,对于许多初入云计算领域的新手来说,无疑是一个极具吸引力的优惠。那么,这款2核2G3M轻量应用服务器到底具备怎样的性能呢?从配置来看,它拥有2个核心CPU、2GB内存以及3Mbps的带宽。这样的配置,对于大多数个人网站、小型企业应用来说已经足够满足需求。
|
11月前
|
存储 关系型数据库 数据处理
2核4G配置云服务器价格多少钱?阿里云2核4G云服务器优惠活动价格及综合测评
在云计算应用场景中,2 核 4G 配置的云服务器因兼顾性能与成本,成为个人开发者、初创企业及中小型团队的高频选择。本文基于 阿里云最新产品信息,从价格体系、性能表现、适用场景等维度,对 2 核 4G 配置的云服务器进行全面解析,为用户选型提供客观参考。
|
11月前
|
人工智能 自然语言处理 运维
2025 AI客服选型全景评测:从技术适配到价值赋能
伴随大语言模型与AI Agent技术的深度渗透,2025年智能客服行业完成了从“标准化问答工具”到“全场景智能服务中枢”的关键性跨越。这一转型不仅重构了客户服务的交互模式,更推动客服体系成为企业链接用户、优化运营的核心基础设施,其价值从单纯的成本节约延伸至业务增长赋能。
|
11月前
|
编译器 测试技术 数据处理
PHP 8 的 JIT 编译器:性能提升的秘密武器
PHP 8 的 JIT 编译器:性能提升的秘密武器
383 125
|
11月前
|
缓存 监控 算法
PHP 8的JIT编译器:性能提升的利器
PHP 8的JIT编译器:性能提升的利器
602 129

热门文章

最新文章