我有这个PHP8.1 Enum类,但是当我上传我的代码时,我的VPS最多支持PHP8.0。
enum AssignmentState: string
{
case Draft = 'draft';
case Published = 'published';
case Graded = 'graded';
}这就是我在控制器和模型中分别使用的方法
$request->has('status') ? ($status = $request->status) : ($status = AssignmentState::Published->value);protected $casts = [
'status' => AssignmentState::class,
];那么,我如何使用PHP8.0来支持端口枚举呢?
发布于 2022-08-29 16:58:08
如果只希望PHP 8.0代码没有枚举或基于枚举的代码,则可以使用具有const属性的类:
class AssignmentState
{
public const Draft = 'draft';
public const Published = 'published';
public const Graded = 'graded';
}
echo AssignmentState::Published;然后,您将不得不从依赖于此的代码中删除->value位,因为您不再使用枚举,而只是使用普通字符串。
https://stackoverflow.com/questions/73530819
复制相似问题