您现在的位置是:首页 > PHP框架交流PHP框架交流
PHP8.1新特性枚举 枚举的简单用法
上善若水2024-03-05 15:33:42【PHP框架交流】 140人已围观
简介PHP8.1新特性枚举枚举的简单用法1.枚举类型的定义 enumStatus:int { caseDraft=1; casePublished=2; case
PHP8.1新特性枚举 枚举的简单用法
官方教程https://www.php.net/manual/zh/language.enumerations.overview.php
1.枚举类型的定义
enum Status: int
{
case Draft = 1;
case Published = 2;
case Archived = 3;
}
2.枚举类型的简单使用
print_r(Status::Draft);
/** 输出如下内容
Status Enum:int
(
[name] => Draft
[value] => 1
)*/
echo sprintf('[draft name]: %s, [draft value]: %d',Status::Draft->name,Status::Draft->value);
//[draft name]: Draft, [draft value]: 1
//枚举类型的遍历
foreach( Status::cases() as $directive ) {
echo sprintf('[name]: %s, [value]: %d %s', $directive->name, $directive->value, PHP_EOL);
}
//输出结果
[name]: Draft, [value]: 1
[name]: Published, [value]: 2
[name]: Archived, [value]: 3
3.枚举类型最佳实践
enum UserStatus: string
{
case Pending = 'P';
case Active = 'A';
case Suspended = 'S';
case CanceledByUser = 'C';
public function label(): string
{
return match($this) {
static::Pending => 'Pending',
static::Active => 'Active',
static::Suspended => 'Suspended',
static::CanceledByUser => 'Canceled by user',
};
}
}
foreach (UserStatus::cases() as $case) {
printf('<option value="%s">%s</option>\n', $case->value, $case->label());
}
最后,输出结果
<option value="P">Pending</option>
<option value="A">Active</option>
<option value="S">Suspended</option>
<option value="C">Canceled by user</option>
Tags: PHP8.1
很赞哦! (0)
相关文章
随机图文
-
搜狗输入法“618红包广告”怎么关闭 搜狗弹窗关闭
618就要到了,国产软件又一次次耍起流氓起来,各种弹窗层出不穷,搜狗输入法也打起了用户是小心思,通过右下角托盘,强制推广618天猫广告,这还是用户数量庞大的软件,为了利益耍起流氓.目前环境下电脑中毒事 -
'com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor' is deprecated idea提示被弃用
‘com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor’isdeprecatedidea提示被弃用,今天升级了myba -
冠状病毒科普 什么是冠状病毒
冠状病毒在分类层级上是科,冠状病毒科拉丁文名Coronaviridae, 简称CoV,因为外形呈球状,具有花瓣状的刺突,因此根据其形状,国际病毒命名委员会在1975年正式命名为“冠状病毒科”。目前已知 -
民政局不见不散
我很怕你哦。为什么?因为我怕老婆。 民政局不见不散 你是什么血型?B!不,你是我的理想型 你忙归忙,什么时候有空嫁给我? 我在找一家店哎,帮我找一下。什么店?你的来电! 你吃东西的样子真可爱,是练过吗? 你让我道歉,还是让我告白。 想让你爸妈开心吗?想。