您现在的位置是:自如初>PHP基础PHP基础

PHP 8.2 新特性之 const 表达式中获取枚举的属性

温新 2023-02-21 01:11:59 PHP基础 574人已围观

简介PHP 8.2 新特性之 const 表达式中获取枚举的属性

hi,我是温新,一名 PHPer

此 RFC 建议允许使用->/?->来获取常量表达式中枚举的属性。此更改的主要动机是允许在不允许枚举对象的地方获取名称和值属性,例如数组键。

<?php
   
enum Status:string
{
   case Draft = 'draft';
   case Pending = 'pending';
   case Published = 'published';

   // PHP 8.2 用法
   const IntStatusValue = [
       self::Draft->value => 0,
       self::Pending->value => 1,
       self::Published->value => 2
   ];

   // PHP 8.1
   public function text()
   {
       return match ($this) {
           self::Draft => 0,
           self::Pending=>1,
           self::Published => 2
       };
   }

}

echo Status::Draft->value . PHP_EOL;
echo Status::Draft->text() . PHP_EOL;
// PHP 8.2 用法
echo Status::IntStatusValue[Status::Draft->value] . PHP_EOL;

在这个枚举案例中,使用一个 IntStatusValue 数组,其元素对应着一个不同的值,这种用法在 PHP 8.1中是不允许的。


很赞哦!(8)

文章评论

登录 注册

自如初--时间轴

站名:自如初

独白:向前走!向前走!

邮箱:ziruchu@qq.com

RSS: RSS

站点信息