您现在的位置是:首页 > PHP框架交流PHP框架交流
PHP8.1新特性枚举 枚举的简单用法
上善若水2024-03-05 15:33:42【PHP框架交流】 743人已围观
简介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
很赞哦! (1)
相关文章
随机图文
-
json对象如何通过get方式将参数传递 非post方式传递复杂的json对象参数
json对象如何通过get方式将参数传递,一个json对象内包含数组多层级结构如何快速拼接get请求参数,显然通过循环拼接是不靠谱的,非post方式传递复杂的json对象参数.具体实现: json对 -
springboot 使用Apache POI Excel文件读取和写入
Excel作为常用的办公文件,存储数据十分便捷,工作中也是大范围使用.在搜索找到最广泛的处理excel文件的包还Apache的工具包!试试excel在web项目中的基本使用吧! 基本工作 准备一个基本 -
shiro1.7 使用springboot 登录 笔记
目前在权限这块shiro和Spring Security是比较热门的两个框架,本篇主要使用shiro实现基本的登录功能,供大家学习使用. 1.引入pom依赖在maven仓库中查找shiro-sprin -
setSessionIdUrlRewritingEnabled(false)不生效
Springboot在集成Shiro后,发现第一请求重定向会出现JSESSIONID,页面会出现400的错误,页面无法正常显示在设置了setSessionIdUrlRewritingEnabled(f