You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.1枚举触发ParseError:意外T_STRING错误求助

问题解决:PHP枚举解析错误(ParseError: unexpected 'Status')

核心原因:PHP版本不兼容

枚举(enum)是PHP 8.1才正式引入的语法特性,如果运行环境的PHP版本低于8.1,解释器无法识别enum关键字,就会触发这个解析错误。

验证与修复步骤

  1. 确认PHP版本
    执行命令查看当前PHP版本:

    php -v
    

    若版本低于8.1,需升级到PHP 8.1或更高版本。

  2. 修正代码大小写问题
    代码中match表达式里使用的self::DRAFT等全大写常量,和定义的case Draft大小写不匹配——PHP枚举的case名称区分大小写,会导致运行时抛出UnhandledMatchError。修正后的完整代码如下:

    <?php
    
    enum Status : int
    {
        case Draft = 1;
        case Published = 2;
        case Archived = 3;
    
        public function getStatus(): string
        {
            return match($this)
            {
                self::Draft => 'draft',
                self::Published => 'published',
                self::Archived => 'archived',
            };
        }
    }
    
    echo Status::tryFrom(1)->getStatus();
    
  3. 额外语法检查(若版本已达标仍报错)

    • 确认enum关键字拼写无误
    • 枚举类型声明(: int)后无多余字符
    • 每个case语句末尾都有分号

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:40:42