您现在的位置是:首页 > PHP框架交流PHP框架交流
PHP8.1新特性枚举 枚举的简单用法
上善若水2024-03-05 15:33:42【PHP框架交流】
890人已围观
简介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)
相关文章
随机图文
PHP8.0新特性(4) 联合类型
熟悉PHP8.0的新特性,联合类型,现在定义好联合类型后,创建联合类型不对的时候会抛出异常了。联合类型 相较于以前的 PHPDoc 声明类型的组合, 现在可以用原生支持的联合类型声明取而代之,并在运行ThinkPHP6上传图片七牛云
ThinkPHP6如何上传图片七牛云,如何上传文件到七牛云对象储存cos,总所周知图片是特别消耗网站带宽的,个人网站将图片上传至七牛云才能显著提升网站的响应速度,手把手交大家如何上配置ThinkPHPjetbrains-agent.jar激活失败原因 phpstorm永久破解
phpstorm破解有两种方式,一种是激活码方式另一种就是jetbrains-agent.jar,激活码时不时会抽风失效,那么就需要使用jetbrains-agent.jar方式,初次使用本人也激活失ThinkPHP6.0主要新特性
ThinkPHP6.0主要新特性