« 列挙型と定数
定数式における列挙型の値 »

トレイト

列挙型ではトレイトを使えます。 列挙型におけるトレイトは、クラスにおけるそれと同じ振る舞いをします。 注意すべきことは、列挙型で use されるトレイトには、プロパティが含まれていてはいけないという点です。 そのトレイトには、 メソッドと static メソッドと、定数だけを含めることができます。 プロパティを持つトレイトの場合、致命的なエラーが発生します。

<?php

interface Colorful
{
    public function color(): string;
}

trait Rectangle
{
    public function shape(): string
    {
        return "Rectangle";
    }
}

enum Suit implements Colorful
{
    use Rectangle;

    case Hearts;
    case Diamonds;
    case Clubs;
    case Spades;

    public function color(): string
    {
        return match ($this) {
            Suit::Hearts, Suit::Diamonds => 'Red',
            Suit::Clubs, Suit::Spades => 'Black',
        };
    }
}

$suit = Suit::Spades;
var_dump($suit->color());
var_dump($suit->shape());
関連キーワード:
トレイト   列挙型   Suit   case   定数   color   Rectangle   Spades   suit   プロパティ   Colorful   shape   Hearts   Diamonds   Clubs   dump   Enum   static   致命的   interface   trait   return   enum   implements   return match
関連する関数・ページ:
language.enumerations.methods   language.enumerations.basics   language.enumerations.backed   unitenum.cases   language.types.enumerations   backedenum.tryfrom