test.php
<?php enum Suit { case Hearts; case Diamonds; case Clubs; case Spades; } $a = Suit::Spades; $b = Suit::Spades; var_dump($a); // Suit::Spades var_dump($a === $b); // true var_dump($a instanceof Suit); // true echo $a->name; // Spades
test2.php
<?php enum Suit: string { case Hearts = 'H'; case Diamonds = 'D'; case Clubs = 'C'; case Spades = 'S'; } $c = Suit::Clubs; echo $c->value; // C $d = Suit::from('H'); var_dump($d); // Suit::Hearts // $e = Suit::from('Z'); // 不正なデータはエラー // PHP Fatal error: Uncaught ValueError: "Z" is not a valid backing value for enum "Suit" $e = Suit::tryFrom('Z') ?? Suit::Spades; // 不正なデータはnullが返る var_dump($e); // Suit::Spades var_dump(Suit::cases()); // [Suit::Hearts, Suit::Diamonds, Suit::Clubs, Suit:Spades]