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(mapping: [Types::A->value => ''])]
클래스 엔터티 {
}
</pre>
<p>오류 <code>상수 표현식에 잘못된 연산이 포함되어 있습니다</code>. 내 속성에 열거형 값을 사용하여 구성을 정의하고 싶습니다. 이건 php의 버그인거 같습니다. 보고해야합니까, 아니면 무엇입니까? </p>
문제는 Types::A->value를 호출할 때 실제로 상수 값이 아닌 열거형 인스턴스를 생성한다는 것입니다. 이 문제를 해결하려면 상수를 정의하고 참조하세요.
으아악php
에서 이 문제에 주의하세요.