首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PHP8.1枚举转换为常量

将PHP8.1枚举转换为常量
EN

Stack Overflow用户
提问于 2022-08-29 15:04:05
回答 1查看 84关注 0票数 0

我有这个PHP8.1 Enum类,但是当我上传我的代码时,我的VPS最多支持PHP8.0。

代码语言:javascript
复制
 enum AssignmentState: string
 {
    case Draft = 'draft';
    case Published = 'published';
    case Graded = 'graded';
 }

这就是我在控制器和模型中分别使用的方法

代码语言:javascript
复制
$request->has('status') ? ($status = $request->status) : ($status = AssignmentState::Published->value);
代码语言:javascript
复制
protected $casts = [
    'status' => AssignmentState::class,
];

那么,我如何使用PHP8.0来支持端口枚举呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-29 16:58:08

如果只希望PHP 8.0代码没有枚举或基于枚举的代码,则可以使用具有const属性的类:

代码语言:javascript
复制
 class AssignmentState
 {
    public const Draft = 'draft';
    public const Published = 'published';
    public const Graded = 'graded';
 }
 
 echo AssignmentState::Published;

然后,您将不得不从依赖于此的代码中删除->value位,因为您不再使用枚举,而只是使用普通字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73530819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档