(PHP 8 >= 8.1.0)
UnitEnum::cases — Genera una lista de casos sobre una enumeración
Este método devuelve un array de todos los casos de una enumeración, en el orden de su declaración.
Esta función no contiene ningún parámetro.
Un array de todos los casos definidos de esta enumeración, en el orden de la declaración.
Ejemplo #1 Uso básico
El siguiente ejemplo ilustra la forma en que los casos de enumeración son devueltos.
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
var_dump(Suit::cases());El ejemplo anterior mostrará:
array(4) {
[0]=>
enum(Suit::Hearts)
[1]=>
enum(Suit::Diamonds)
[2]=>
enum(Suit::Clubs)
[3]=>
enum(Suit::Spades)
}
If anyone is here wondering how to get all the names from the enum cases and map them into an array, it can be done like this:
array_column(CampaignPeriods::cases(), 'name');
Likewise, have the 2nd argument as 'value' to get the enum's values.
Happy coding, web artisan :)The Enum documentation says, "if a Backed Enum is serialized to JSON, it will be represented by its scalar value only, in the appropriate type."
This means you can easily get a backed Enum's values for use in a JSON document using only the BackedEnum::cases() method:
<?php
enum Suits: string {
case Hearts = 'Heart';
case Diamonds = 'Diamond';
case Clubs = 'Spade';
case Spades = 'Club';
}
echo json_encode(Suits::cases());
?>
Results in this output:
["Heart","Diamond","Spade","Club"]