PHP 8.1枚举触发ParseError:意外T_STRING错误求助
问题解决:PHP枚举解析错误(ParseError: unexpected 'Status')
核心原因:PHP版本不兼容
枚举(enum)是PHP 8.1才正式引入的语法特性,如果运行环境的PHP版本低于8.1,解释器无法识别enum关键字,就会触发这个解析错误。
验证与修复步骤
确认PHP版本
执行命令查看当前PHP版本:php -v若版本低于8.1,需升级到PHP 8.1或更高版本。
修正代码大小写问题
代码中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();额外语法检查(若版本已达标仍报错)
- 确认
enum关键字拼写无误 - 枚举类型声明(
: int)后无多余字符 - 每个
case语句末尾都有分号
- 确认
内容的提问来源于stack exchange,提问作者Jake
相关产品推荐
相关产品推荐

