<?php
enum UserStatus: string
{
case Pending = 'P';
case Active = 'A';
case Suspended = 'S';
case CanceledByUser = 'C';
public function label(): string
{
return match($this) {
self::Pending => 'Pending',
self::Active => 'Active',
self::Suspended => 'Suspended',
self::CanceledByUser => 'Canceled by user',
};
}
}
$status = UserStatus::Suspended;
var_dump($status->label());
ããŽäžã§ã¯ããĻãŧãļãŧãŽãšããŧãŋãšã¯
UserStatus::Pendingã
UserStatus::Activeã
UserStatus::Suspended ãžãã¯
UserStatus::CanceledByUser
ãŽããĄãŽã˛ã¨ã¤ãĢéãããĻããžãã
éĸæ°ã¯ããŠãĄãŧãŋãŽåã UserStatus
ãĢæåŽã§ããžãããããã4ã¤ãŽå¤ã ããåãå
Ĩããžãã
ããã4ã¤ãŽå¤ã¯ããããã
label() ãĄãŊãããæãĄãžãã
ããã¯ãäēēéãčĒãŋãããæååãčŋããžãã
ããŽæååã¯ã"ããˇãŗä¸ãŽ" ãšãĢãŠãŧå¤ã¨ã¯åĨãŽããŽã§ãã
ããŽãšãĢãŠãŧå¤ã¯ãããŧãŋããŧãšãŽããŖãŧãĢããã
HTML ㎠select ããã¯ãšã§äŊŋããã¨ãã§ããžãã
<?php
enum UserStatus: string
{
case Pending = 'P';
case Active = 'A';
case Suspended = 'S';
case CanceledByUser = 'C';
public function label(): string
{
return match($this) {
self::Pending => 'Pending',
self::Active => 'Active',
self::Suspended => 'Suspended',
self::CanceledByUser => 'Canceled by user',
};
}
}
foreach (UserStatus::cases() as $case) {
printf(
"<option value=\"%s\">%s</option>\n",
htmlentities($case->value),
htmlentities($case->label())
);
}