はじめに
PHPのenumを初めて使用した際に、学んだ内容になっております。
環境
・PHP8.1
・Laravel9
enumファイルの位置
今回はModelの中でファイルを管理してます。
Packages
↳Domain
↳Models
enumファイル
weekType.php
<?php
namespace Packages\Domain\Models;
enum WeekType: int
{
case Monday = 1;
case Tuesday = 2;
case Wednesday = 3;
case Thursday = 4;
case Friday = 5;
case Saturday = 6;
case Sunday = 7;
public function label(): string
{
return match($this){
WeekType::Monday => '月',
WeekType::Tuesday => '火',
WeekType::Wednesday => '水',
WeekType::Thursday => '木',
WeekType::Friday => '金',
WeekType::Saturday => '土',
WeekType::Sunday => '日',
};
}
}
他のファイルでenumを使用したい場合
exampleController.php
<?php
namespace App\Http\Controllers;
use Packages\Domain\Models\WeekType;
class exampleController extends Controller
{
public function show()
{
// Mondayを取得したい場合
WeekType::Monday;
// Mondayのnameを取得したい場合
WeekType::Monday->name;
// Mondayのvalueを取得したい場合
WeekType::Monday->value;
// 「月」を取得したい場合
WeekType::Monday->label();
// 4番目(木)の値を取得したい場合
WeekType::from(4);
}
}
表示内容
- 「月」を取得したい場合の結果
Packages\Domain\Models\WeekType {
name: "Monday"
value: 1
}
- Mondayのnameを取得したい場合の結果
Monday
- Mondayのvalueを取得したい場合の結果
1
- 「木」を取得したい場合の結果
月
- 4番目(木)の値を取得したい場合の結果
Packages\Domain\Models\WeekType {
name: "Thursday"
value: 4
}