ๅๆๅใฏใฏใฉในใซไผผใฆใใพใใใ ใฏใฉในใใคใณใฟใผใใงใคในใใใฌใคใใจๅๅ็ฉบ้ใๅ ฑๆใใพใใ ๅๆๅใฏใชใผใใญใผใใฃใณใฐใๅฏ่ฝใงใใ ๅๆๅใฏๆฐใใๅใๅฎ็พฉใใพใใใ ๅบๅฎใฎใ้ใใใๆฐใฎๆๅนใชๅคใๆใกใพใใ
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
ไธ่จใฎๅฎฃ่จใซใใฃใฆใๆฐใใๅๆๅ
Suit ใไฝใใใพใใใ
ใใใๆใคๆๅนใชๅคใฏ4ใคใ ใใงใใ
Suit::HeartsใSuit::DiamondsใSuit::Clubsใใใใฆ Suit::Spades ใงใใ
ใใใใฎๆๅนใชๅคใฎใใกใใฒใจใคใ ใใๅคๆฐใซไปฃๅ
ฅใงใใพใใ
้ขๆฐใฏๅๆๅใซๅฏพใใๅใใงใใฏใ่กใใพใใใ
ใใฎๅ ดๅใฏๅๆๅใฎๅคใ ใใๆธกใใพใใ
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
function pick_a_card(Suit $suit)
{
var_dump($suit);
}
$val = Suit::Diamonds;
// OK
pick_a_card($val);
// OK
pick_a_card(Suit::Clubs);
// TypeError: pick_a_card(): Argument #1 ($suit) must be of type Suit, string given
pick_a_card('Spades');
ๅๆๅใฏใ0ๅไปฅไธใฎ
case ใๅฎ็พฉใงใใพใใ
case ใๅฎ็พฉใใๆฐใซไธ้ใฏใใใพใใใ
case ใ0ๅใฎๅๆๅใๆๆณ็ใซใฏๆๅนใงใใใๅฝนใซ็ซใกใพใใใ
ๅๆๅใฎ case ใฏใPHP ใฎใฉใใซใจๅใ่ฆๅใซๅพใใพใใ ๅฎๆฐ ใฎใใผใธใๅ็ งใใ ใใใ
ใใใฉใซใใงใฏใcase ใฏๆฌ่ณช็ใซในใซใฉใผใฎๅคใซไพๅญใใฆใใพใใใ
ใคใพใใSuit::Hearts
ใฏ "0" ใซ็ญใใใชใใจใใใใจใงใใ
ใใใใใใใใใฎ case ใฏใใฎๅๅใไปใใใทใณใฐใซใใณใชใใธใงใฏใใงใใ
ไปฅไธใฎใณใผใใใใใ็คบใใฆใใพใ:
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
$a = Suit::Spades;
$b = Suit::Spades;
if ($a === $b) {
print "Suits match using ===\n";
}
if ($a instanceof Suit) {
print "Suits match using instanceof\n";
}
if ($a !== 'Spades') {
print "Suit does not match the string\n";
}
ใใฎใใจใฏใๅๆๅใฎๅคใฏๆฑบใใฆ
< ใ >
ใงๆฏ่ผใงใใชใใใจใๆๅณใใฆใใพใใ
ใชใใชใใใใใใฎๆฏ่ผใใชใใธใงใฏใใง่กใฃใฆใ็กๆๅณใ ใใใงใใ
ๅๆๅใฎๅคใไฝฟใฃใฆใใใใฎๆฏ่ผใ่กใฃใฆใใๅธธใซ false ใ่ฟใใพใใ
้ข้ฃใใใใผใฟใฎใชใใใใใใใฟใคใใฎ case ใใ "Pure Case" ใจๅผใณใพใใ Pure Case ใฎใฟใๅซใๅๆๅใใ"Pure Enum" ใจๅผใณใพใใ
ๅ จใฆใฎ Pure Case ใฏใใใฎๅๆๅใฎใคใณในใฟใณในใจใใฆๅฎ่ฃ ใใใฆใใพใใ ๅๆๅใฏๅ ้จ็ใซใฏใฉในใจใใฆ่กจ็พใใใพใใ
ๅ
จใฆใฎ case ใฏ่ชญใฟๅใๅฐ็จใฎใใญใใใฃ
name ใๆใกใพใใ
ใใใฏๅคงๆๅญๅฐๆๅญใๅบๅฅใใใใcase ใใฎใใฎใฎๅๅใงใใ
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
print Suit::Spades->name;
// "Spades" ใจ่กจ็คบๅๆๅใฎๅๅใๅ็ใซๅๅพใใฆใใๅ ดๅใ case ใฎๅญๅจใ็ขบ่ชใใใใ่ชญใฟๅใ็จ้ใจใใฆ defined() ใ constant() ้ขๆฐใไฝฟใใพใใ ใใใใชใใใใใใใฎ้ขๆฐใฎๅฉ็จใฏใใใใใงใใพใใใ ใชใใชใใ Backed Enum ใงๅคงๅใฎ็จ้ใๆบใใใใฏใใ ใใใงใใ