emreyarligan/enum-concern

一个用于轻松处理 Laravel 集合中枚举的 PHP 包 📦 ✨

1.0.4 2024-04-06 00:19 UTC

This package is auto-updated.

Last update: 2024-09-11 05:11:59 UTC


README

EnumConcern 是一个 PHP 包,旨在通过一系列便捷的方法增强 PHP 枚举功能的利用。此包包含一个 Trait 文件,它允许轻松处理枚举。

Laravel 集合提供支持,让您感到宾至如归。 🧡

Latest Version Total Downloads

安装

要安装 EnumConcern 包,请通过 composer 引入

composer require emreyarligan/enum-concern

现在,您可以在您的枚举中使用 EnumConcern。

namespace App\Enums;

use EmreYarligan\EnumConcern\EnumConcern;

enum TestEnum: string
{
    use EnumConcern;
    ...
    ...
}

方法

基本用法

您可以在文档下面的 所有方法的示例 部分查看更多详细信息。

namespace App\Enums;

use EmreYarligan\EnumConcern\EnumConcern;

enum Color: string
{
    use EnumConcern;

    case RED = "Red";
    case GREEN = "Green";
    case BLUE = "Blue";

    public function translateToTurkish(): string
    {
        return match ($this) {
            self::RED    => 'Kırmızı',
            self::GREEN  => 'Yeşil',
            self::BLUE   => 'Mavi',
        };
    }
    
}

Color::all();
// Result: Illuminate\Support\Collection (7) [
//   [0] => 'Red',
//   [1] => 'Green',
//   [2] => 'Blue
// ]

Color::all('translateToTurkish');
// Result: Illuminate\Support\Collection (7) [
//   [0] => 'Kırmızı',
//   [1] => 'Yeşil',
//   [2] => 'Mavi
// ]

Color::has('Purple');
// false

Color::has('Mavi','translateToTurkish');
// true

所有方法的示例

步骤 1: 创建您的枚举

创建一个枚举类并使用 EnumConcern Trait。

以下是一个示例。我为示例创建了一个关于水果的 trait,不是很巧妙吗? 😛

namespace App\Enums;

use EmreYarligan\EnumConcern\EnumConcern;

enum Fruits: int
{
    use EnumConcern;

    case BANANA = 1;
    case STRAWBERRY = 2;
    case CHERRY = 3;
    case WATERMELON = 4;
    case ORANGE = 5;
    case KIWI = 6;
    case APPLE = 7;

    // Custom methods
    public function emojis(): string
    {
        return match ($this) {
            self::BANANA        => '🍌',
            self::STRAWBERRY    => '🍓',
            self::CHERRY        => '🍒',
            self::WATERMELON    => '🍉',
            self::ORANGE        => '🍊',
            self::KIWI          => '🥝',
            self::APPLE         => '🍎',
        };
    }

    public function names(): string
    {
        return match ($this) {
            self::BANANA        => 'Banana',
            self::STRAWBERRY    => 'Strawberry',
            self::CHERRY        => 'Cherry',
            self::WATERMELON    => 'Watermelon',
            self::ORANGE        => 'Orange',
            self::KIWI          => 'Kiwi',
            self::APPLE         => 'Apple',
        };
    }
}

注意:此 README 包含适用于 intstring 类型枚举值的示例。EnumConcern Trait 以相同的方式处理两种类型的枚举值。这允许您在项目中同时使用 EnumConcern Trait 来处理这两种类型的枚举,并简化枚举值的处理。

以下是字符串枚举示例

namespace App\Enums;

use EmreYarligan\EnumConcern\EnumConcern;

enum Fruits: string
{
    use EnumConcern;

    case BANANA = "Delicious Banana";
    case STRAWBERRY = 'Red Strawberry';
    case CHERRY = "Sweet Cherry";
    case WATERMELON = "juicy watermelon";
    case ORANGE = "Tasty Orange";
    case KIWI = "Green Kiwi";
    case APPLE = "Crunchy Apple";
}

步骤 2: 使用 EnumConcern 处理枚举

EnumConcern 提供了几个便捷的方法来处理您的枚举值。

all() 方法

获取所有枚举值作为 Collection(空 $method)

Fruits::all();

结果

Illuminate\Support\Collection {
  #items: array:7 [
    "BANANA" => 1
    "STRAWBERRY" => 2
    "CHERRY" => 3
    "WATERMELON" => 4
    "ORANGE" => 5
    "KIWI" => 6
    "APPLE" => 7
  ]
}

使用 'emojis' 方法获取所有枚举值作为 Collection

Fruits::all('emojis');

结果

Illuminate\Support\Collection {
  #items: array:7 [
    "BANANA" => "🍌"
    "STRAWBERRY" => "🍓"
    "CHERRY" => "🍒"
    "WATERMELON" => "🍉"
    "ORANGE" => "🍊"
    "KIWI" => "🥝"
    "APPLE" => "🍎"
  ]
}

使用 'names' 方法获取所有枚举值作为 Collection。

Fruits::all('names');

结果

Illuminate\Support\Collection {
  #items: array:7 [
    "BANANA" => "Banana"
    "STRAWBERRY" => "Strawberry"
    "CHERRY" => "Cherry"
    "WATERMELON" => "Watermelon"
    "ORANGE" => "Orange"
    "KIWI" => "Kiwi"
    "APPLE" => "Apple"
  ]
}

has() 方法

检查特定值是否存在(空 $method)

Fruits::has(1);

// Result: true

使用 'emojis' 方法检查特定值是否存在

Fruits::has('🍉', 'emojis');

// Result: true

使用 'names' 方法检查特定值是否存在

Fruits::has('Coconut', 'names');

// Result: false

keyByValue() 方法

获取特定值的案例(键/名称)(空 $method)

Fruits::keyByValue(3);

// Result: "CHERRY"

使用 'emojis' 方法获取特定值的案例(键/名称)

Fruits::keyByValue('🥝', 'emojis');

// Result: "KIWI"

使用 'names' 方法获取特定值的案例(键/名称)

Fruits::keyByValue('Orange', 'names');

// Result: "ORANGE"

toJson() 方法

将所有值转换为 JSON 字符串(空 $method)

Fruits::toJson();

// Result: "{"BANANA":1,"STRAWBERRY":2,"CHERRY":3,"WATERMELON":4,"ORANGE":5,"KIWI":6,"APPLE":7}"

使用 'emojis' 方法将所有值转换为 JSON 字符串

Fruits::toJson('emojis',JSON_UNESCAPED_UNICODE);

// Result: "{"BANANA":"🍌","STRAWBERRY":"🍓",...,"APPLE":"🍎"}"

使用 'names' 方法将所有值转换为 JSON 字符串

Fruits::toJson('names');

// Result: "{"BANANA":"Banana","STRAWBERRY":"Strawberry","CHERRY":"Cherry","WATERMELON":"Watermelon","ORANGE":"Orange","KIWI":"Kiwi","APPLE":"Apple"}"

toArray() 方法

将所有值转换为数组(空 $method)

Fruits::toArray();

结果

array:7 [
  "BANANA" => 1
  "STRAWBERRY" => 2
  "CHERRY" => 3
  "WATERMELON" => 4
  "ORANGE" => 5
  "KIWI" => 6
  "APPLE" => 7
]

使用 'emojis' 方法将所有值转换为数组

Fruits::toArray('emojis');

结果

array:7 [
  "BANANA" => "🍌"
  "STRAWBERRY" => "🍓"
  "CHERRY" => "🍒"
  "WATERMELON" => "🍉"
  "ORANGE" => "🍊"
  "KIWI" => "🥝"
  "APPLE" => "🍎"
]

使用 'names' 方法将所有值转换为数组

Fruits::toArray('names');

结果

array:7 [
  "BANANA" => "Banana"
  "STRAWBERRY" => "Strawberry"
  "CHERRY" => "Cherry"
  "WATERMELON" => "Watermelon"
  "ORANGE" => "Orange"
  "KIWI" => "Kiwi"
  "APPLE" => "Apple"
]

toKeyValueCollection() 方法

将所有值转换为键值格式作为 Collection(空 $method)

Fruits::toKeyValueCollection();

结果

Illuminate\Support\Collection {
  #items: array:7 [
    "BANANA" => array:2 [
      "key" => "BANANA"
      "value" => 1
    ]
    "STRAWBERRY" => array:2 [
      "key" => "STRAWBERRY"
      "value" => 2
    ]
    "CHERRY" => array:2 [
      "key" => "CHERRY"
      "value" => 3
    ]
    "WATERMELON" => array:2 [
      "key" => "WATERMELON"
      "value" => 4
    ]
    "ORANGE" => array:2 [
      "key" => "ORANGE"
      "value" => 5
    ]
    "KIWI" => array:2 [
      "key" => "KIWI"
      "value" => 6
    ]
    "APPLE" => array:2 [
      "key" => "APPLE"
      "value" => 7
    ]
  ]
}

使用 keyAttributeName 和 valueAttributeName 参数将所有值转换为键值格式作为 Collection(空 $method)

Fruits::toKeyValueCollection(keyAttributeName: 'foo', valueAttributeName: 'bar');

结果

Illuminate\Support\Collection {
  #items: array:7 [
    "BANANA" => array:2 [
      "foo" => "BANANA"
      "bar" => 1
    ]
    "STRAWBERRY" => array:2 [
      "foo" => "STRAWBERRY"
      "bar" => 2
    ]
    "CHERRY" => array:2 [
      "foo" => "CHERRY"
      "bar" => 3
    ]
    "WATERMELON" => array:2 [
      "foo" => "WATERMELON"
      "bar" => 4
    ]
    "ORANGE" => array:2 [
      "foo" => "ORANGE"
      "bar" => 5
    ]
    "KIWI" => array:2 [
      "foo" => "KIWI"
      "bar" => 6
    ]
    "APPLE" => array:2 [
      "foo" => "APPLE"
      "bar" => 7
    ]
  ]
}

使用 'emojis' 方法将所有值转换为键值格式作为 Collection

Fruits::toKeyValueCollection('emojis');

结果

Illuminate\Support\Collection {
  #items: array:7 [
    "BANANA" => array:2 [
      "key" => "BANANA"
      "value" => "🍌"
    ]
    "STRAWBERRY" => array:2 [
      "key" => "STRAWBERRY"
      "value" => "🍓"
    ]
    "CHERRY" => array:2 [
      "key" => "CHERRY"
      "value" => "🍒"
    ]
    "WATERMELON" => array:2 [
      "key" => "WATERMELON"
      "value" => "🍉"
    ]
    "ORANGE" => array:2 [
      "key" => "ORANGE"
      "value" => "🍊"
    ]
    "KIWI" => array:2 [
      "key" => "KIWI"
      "value" => "🥝"
    ]
    "APPLE" => array:2 [
      "key" => "APPLE"
      "value" => "🍎"
    ]
  ]
}

使用 'emojis' 方法和使用 keyAttributeName 和 valueAttributeName 参数将所有值转换为键值格式作为 Collection

Fruits::toKeyValueCollection('emojis','foo','bar');

结果

Illuminate\Support\Collection {
  #items: array:7 [
    "BANANA" => array:2 [
      "foo" => "BANANA"
      "bar" => "🍌"
    ]
    "STRAWBERRY" => array:2 [
      "foo" => "STRAWBERRY"
      "bar" => "🍓"
    ]
    "CHERRY" => array:2 [
      "foo" => "CHERRY"
      "bar" => "🍒"
    ]
    "WATERMELON" => array:2 [
      "foo" => "WATERMELON"
      "bar" => "🍉"
    ]
    "ORANGE" => array:2 [
      "foo" => "ORANGE"
      "bar" => "🍊"
    ]
    "KIWI" => array:2 [
      "foo" => "KIWI"
      "bar" => "🥝"
    ]
    "APPLE" => array:2 [
      "foo" => "APPLE"
      "bar" => "🍎"
    ]
  ]
}

使用 'names' 方法将所有值转换为键值格式作为 Collection

Fruits::toKeyValueCollection('names');

结果

Illuminate\Support\Collection {
  #items: array:7 [
    "BANANA" => array:2 [
      "key" => "BANANA"
      "value" => "Banana"
    ]
    "STRAWBERRY" => array:2 [
      "key" => "STRAWBERRY"
      "value" => "Strawberry"
    ]
    "CHERRY" => array:2 [
      "key" => "CHERRY"
      "value" => "Cherry"
    ]
    "WATERMELON" => array:2 [
      "key" => "WATERMELON"
      "value" => "Watermelon"
    ]
    "ORANGE" => array:2 [
      "key" => "ORANGE"
      "value" => "Orange"
    ]
    "KIWI" => array:2 [
      "key" => "KIWI"
      "value" => "Kiwi"
    ]
    "APPLE" => array:2 [
      "key" => "APPLE"
      "value" => "Apple"
    ]
  ]
}

使用 'names' 方法和使用 keyAttributeName 和 valueAttributeName 参数将所有值转换为键值格式作为 Collection。

Fruits::toKeyValueCollection('names', 'foo', 'bar');

结果

Illuminate\Support\Collection {
  #items: array:7 [
    "BANANA" => array:2 [
      "foo" => "BANANA"
      "bar" => "Banana"
    ]
    "STRAWBERRY" => array:2 [
      "foo" => "STRAWBERRY"
      "bar" => "Strawberry"
    ]
    "CHERRY" => array:2 [
      "foo" => "CHERRY"
      "bar" => "Cherry"
    ]
    "WATERMELON" => array:2 [
      "foo" => "WATERMELON"
      "bar" => "Watermelon"
    ]
    "ORANGE" => array:2 [
      "foo" => "ORANGE"
      "bar" => "Orange"
    ]
    "KIWI" => array:2 [
      "foo" => "KIWI"
      "bar" => "Kiwi"
    ]
    "APPLE" => array:2 [
      "foo" => "APPLE"
      "bar" => "Apple"
    ]
  ]
}

toKeyValueArray() 方法

将所有值转换为键值格式的数组(空 $method)

Fruits::toKeyValueArray();

结果

array:7 [
  0 => array:2 [
    "key" => "BANANA"
    "value" => 1
  ]
  1 => array:2 [
    "key" => "STRAWBERRY"
    "value" => 2
  ]
  2 => array:2 [
    "key" => "CHERRY"
    "value" => 3
  ]
  3 => array:2 [
    "key" => "WATERMELON"
    "value" => 4
  ]
  4 => array:2 [
    "key" => "ORANGE"
    "value" => 5
  ]
  5 => array:2 [
    "key" => "KIWI"
    "value" => 6
  ]
  6 => array:2 [
    "key" => "APPLE"
    "value" => 7
  ]
]

使用 keyAttributeName 和 valueAttributeName 参数将所有值转换为键值格式的数组(空 $method)

Fruits::toKeyValueArray(keyAttributeName: 'foo', valueAttributeName: 'bar');

结果

array:7 [
  0 => array:2 [
    "foo" => "BANANA"
    "bar" => 1
  ]
  1 => array:2 [
    "foo" => "STRAWBERRY"
    "bar" => 2
  ]
  2 => array:2 [
    "foo" => "CHERRY"
    "bar" => 3
  ]
  3 => array:2 [
    "foo" => "WATERMELON"
    "bar" => 4
  ]
  4 => array:2 [
    "foo" => "ORANGE"
    "bar" => 5
  ]
  5 => array:2 [
    "foo" => "KIWI"
    "bar" => 6
  ]
  6 => array:2 [
    "foo" => "APPLE"
    "bar" => 7
  ]
]

使用 'emojis' 方法将所有值转换为键值格式的数组

Fruits::toKeyValueArray('emojis');

结果

array:7 [
  0 => array:2 [
    "key" => "BANANA"
    "value" => "🍌"
  ]
  1 => array:2 [
    "key" => "STRAWBERRY"
    "value" => "🍓"
  ]
  2 => array:2 [
    "key" => "CHERRY"
    "value" => "🍒"
  ]
  3 => array:2 [
    "key" => "WATERMELON"
    "value" => "🍉"
  ]
  4 => array:2 [
    "key" => "ORANGE"
    "value" => "🍊"
  ]
  5 => array:2 [
    "key" => "KIWI"
    "value" => "🥝"
  ]
  6 => array:2 [
    "key" => "APPLE"
    "value" => "🍎"
  ]
]

使用 'emojis' 方法,并带有 keyAttributeName 和 valueAttributeName 参数,将所有值转换为键值格式的数组(空 $method)

Fruits::toKeyValueArray('emojis','foo','bar');

结果

array:7 [
  0 => array:2 [
    "foo" => "BANANA"
    "bar" => "🍌"
  ]
  1 => array:2 [
    "foo" => "STRAWBERRY"
    "bar" => "🍓"
  ]
  2 => array:2 [
    "foo" => "CHERRY"
    "bar" => "🍒"
  ]
  3 => array:2 [
    "foo" => "WATERMELON"
    "bar" => "🍉"
  ]
  4 => array:2 [
    "foo" => "ORANGE"
    "bar" => "🍊"
  ]
  5 => array:2 [
    "foo" => "KIWI"
    "bar" => "🥝"
  ]
  6 => array:2 [
    "foo" => "APPLE"
    "bar" => "🍎"
  ]
]

使用 'names' 方法将所有值转换为键值格式的数组

Fruits::toKeyValueArray('names');

结果

array:7 [
  0 => array:2 [
    "key" => "BANANA"
    "value" => "Banana"
  ]
  1 => array:2 [
    "key" => "STRAWBERRY"
    "value" => "Strawberry"
  ]
  2 => array:2 [
    "key" => "CHERRY"
    "value" => "Cherry"
  ]
  3 => array:2 [
    "key" => "WATERMELON"
    "value" => "Watermelon"
  ]
  4 => array:2 [
    "key" => "ORANGE"
    "value" => "Orange"
  ]
  5 => array:2 [
    "key" => "KIWI"
    "value" => "Kiwi"
  ]
  6 => array:2 [
    "key" => "APPLE"
    "value" => "Apple"
  ]
]

使用 'names' 方法,并带有 keyAttributeName 和 valueAttributeName 参数,将所有值转换为键值格式的数组(空 $method)

Fruits::toKeyValueArray('names','foo','bar');

结果

array:7 [
  0 => array:2 [
    "foo" => "BANANA"
    "bar" => "Banana"
  ]
  1 => array:2 [
    "foo" => "STRAWBERRY"
    "bar" => "Strawberry"
  ]
  2 => array:2 [
    "foo" => "CHERRY"
    "bar" => "Cherry"
  ]
  3 => array:2 [
    "foo" => "WATERMELON"
    "bar" => "Watermelon"
  ]
  4 => array:2 [
    "foo" => "ORANGE"
    "bar" => "Orange"
  ]
  5 => array:2 [
    "foo" => "KIWI"
    "bar" => "Kiwi"
  ]
  6 => array:2 [
    "foo" => "APPLE"
    "bar" => "Apple"
  ]
]

randomValue() 方法

从值的集合中获取一个随机值(空 $method)

Fruits::randomValue();

// Result: int(4)

使用 'emojis' 方法从值的集合中获取一个随机值

Fruits::randomValue('emojis');

// Result: string(4) "🍊"

使用 'names' 方法从值的集合中获取一个随机值

Fruits::randomValue('names');

// Result: string(6) "Kiwi"

randomKey() 方法

从值的集合中获取一个随机键(键/名称)

Fruits::randomKey();

// Result: string(7) "KIWI"

only() 方法

获取某些键的值作为一个集合(空 $method)

Fruits::only(['STRAWBERRY','CHERRY','WATERMELON','ORANGE']);

结果

Illuminate\Support\Collection {
  #items: array:4 [
    "STRAWBERRY" => 2
    "CHERRY" => 3
    "WATERMELON" => 4
    "ORANGE" => 5
  ]
}

使用 'emojis' 方法获取某些键的值作为一个集合

Fruits::only(['STRAWBERRY','CHERRY','WATERMELON','ORANGE'],'emojis');

结果

Illuminate\Support\Collection {
  #items: array:4 [
    "STRAWBERRY" => "🍓"
    "CHERRY" => "🍒"
    "WATERMELON" => "🍉"
    "ORANGE" => "🍊"
  ]
}

使用 'names' 方法获取某些键的值作为一个集合

Fruits::only(['STRAWBERRY','CHERRY','WATERMELON','ORANGE'],'names');

结果

Illuminate\Support\Collection {
  #items: array:4 [
    "STRAWBERRY" => "Strawberry"
    "CHERRY" => "Cherry"
    "WATERMELON" => "Watermelon"
    "ORANGE" => "Orange"
  ]
}

onlyAsArray() 方法

获取某些键的值作为一个数组(空 $method)

Fruits::onlyAsArray(['STRAWBERRY','CHERRY','WATERMELON','ORANGE']);

结果

array:4 [
  "STRAWBERRY" => 2
  "CHERRY" => 3
  "WATERMELON" => 4
  "ORANGE" => 5
]

使用 'emojis' 方法获取某些键的值作为一个数组

Fruits::onlyAsArray(['STRAWBERRY','CHERRY','WATERMELON','ORANGE'],'emojis');

结果

array:4 [
  "STRAWBERRY" => "🍓"
  "CHERRY" => "🍒"
  "WATERMELON" => "🍉"
  "ORANGE" => "🍊"
]

使用 'names' 方法获取某些键的值作为一个数组

Fruits::onlyAsArray(['STRAWBERRY','CHERRY','WATERMELON','ORANGE'],'names');

结果

array:4 [
  "STRAWBERRY" => "Strawberry"
  "CHERRY" => "Cherry"
  "WATERMELON" => "Watermelon"
  "ORANGE" => "Orange"
]

except() 方法

获取除某些键之外的所有值作为一个集合(空 $method)

Fruits::except(['STRAWBERRY','CHERRY','WATERMELON','ORANGE']);

结果

Illuminate\Support\Collection {
  #items: array:3 [
    "BANANA" => 1
    "KIWI" => 6
    "APPLE" => 7
  ]
}

使用 'emojis' 方法获取除某些键之外的所有值作为一个集合

Fruits::except(['STRAWBERRY','CHERRY','WATERMELON','ORANGE'],'emojis');

结果

Illuminate\Support\Collection {
  #items: array:3 [
    "BANANA" => "🍌"
    "KIWI" => "🥝"
    "APPLE" => "🍎"
  ]
}

使用 'names' 方法获取除某些键之外的所有值作为一个集合

Fruits::except(['STRAWBERRY','CHERRY','WATERMELON','ORANGE'],'names');

结果

Illuminate\Support\Collection {
  #items: array:3 [
    "BANANA" => "Banana"
    "KIWI" => "Kiwi"
    "APPLE" => "Apple"
  ]
}

exceptAsArray() 方法

获取除某些键之外的所有值作为一个数组(空 $method)

Fruits::exceptAsArray(['STRAWBERRY','CHERRY','WATERMELON','ORANGE'])

结果

array:3 [
  "BANANA" => 1
  "KIWI" => 6
  "APPLE" => 7
]

使用 'emojis' 方法获取除某些键之外的所有值作为一个数组

Fruits::exceptAsArray(['STRAWBERRY','CHERRY','WATERMELON','ORANGE'],'emojis');

结果

array:3 [
  "BANANA" => "🍌"
  "KIWI" => "🥝"
  "APPLE" => "🍎"
]

使用 'names' 方法获取除某些键之外的所有值作为一个数组

Fruits::exceptAsArray(['STRAWBERRY','CHERRY','WATERMELON','ORANGE'],'names');

结果

array:3 [
  "BANANA" => "Banana"
  "KIWI" => "Kiwi"
  "APPLE" => "Apple"
]

first() 方法

从枚举中获取第一个值(空 $method)

Fruits::first();
// Result: int(1)

使用 'emojis' 方法从枚举中获取第一个值

Fruits::first('emojis');
// Result: "🍌"

使用 'names' 方法从枚举中获取第一个值

Fruits::first('names');
// Result: "Banana"

last() 方法

从枚举中获取最后一个值(空 $method)

Fruits::last();
// Result: 7

使用 'emojis' 方法从枚举中获取最后一个值

Fruits::last('emojis');
// Result: "🍎"

使用 'names' 方法从枚举中获取最后一个值

Fruits::last('names');
// Result: "Apple"

fromValue() 方法

从一个字符串值创建一个枚举对象。

$greenEnum = Color::fromValue("Green");
// Result:
// App\Enums\Color {
//   +name: "GREEN"
//   +value: "Green"
// }

如果值 "Green" 存在于 Color 枚举中,此方法将返回相应的枚举对象。如果不在此枚举中,则抛出 InvalidArgumentException

valueNamePairs() 方法

获取值及其转换后的值的键值对(如果指定了方法)。

$pairs = Color::valueNamePairs('translateToTurkish');
// Result:
// Illuminate\Support\Collection {
//    "Red" => "Kırmızı",
//    "Green" => "Yeşil",
//    "Blue" => "Mavi"
// }

is() 方法

检查枚举值是否等于给定的值。

  $enum = Fruits::BANANA;

  $enum->is(Fruits::BANANA);
  // Result: true

  $enum->is(Fruits::APPLE);
  // Result: false

isNot() 方法

检查枚举值是否不等于给定的值。

  $enum = Fruits::BANANA;

  $enum->isNot(Fruits::BANANA);
  // Result: false

  $enum->isNot(Fruits::APPLE);
  // Result: true

isAny() 方法

检查枚举值是否等于给定的任何值。

  $enum = Fruits::BANANA;

  $enum->isAny(Fruits::BANANA, Fruits::APPLE);
  // Result: true

  $enum->isAny(Fruits::APPLE, Fruits::KIWI);
  // Result: false

isNotAny() 方法

检查枚举值是否不等于给定的任何值。

  $enum = Fruits::BANANA;

  $enum->isNotAny(Fruits::BANANA, Fruits::APPLE);
  // Result: false

  $enum->isNotAny(Fruits::APPLE, Fruits::KIWI);
  // Result: true

测试

composer test