PHP のプロパティで ENUM を使用する
P粉593118425
2023-08-26 23:17:00
<p>次のコードを見てください: </p>
<pre class="brush:php;toolbar:false;"><?php
列挙型: 文字列 {
ケース A = 'a';
ケースB = 'b';
}
#[属性(属性::TARGET_CLASS)]
クラスMyAttribute {
パブリック関数 __construct(パブリック読み取り専用配列 $mapping)
{
}
}
#[MyAttribute(マッピング: [Types::A->value => ''])]
クラスエンティティ{
}
</pre>
<p>エラー <code>定数式に無効な演算が含まれています</code>。プロパティで列挙値を使用して構成を定義したいと考えています。どうやらこれはphpのバグのようです。それは報告すべきでしょうか? </p>
問題は、Types::A->value を呼び出すと、実際には定数値ではない列挙型のインスタンスが作成されることです。 この問題を解決するには、定数を定義してそれを参照します。
リーリーphp
のこの問題に注意してください。