0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

enumの値を表示

Posted at

はじめに

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
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?