(4 1)"? " /> (4 1)"? " />
질문:
속성 초기화에 상수 값이 포함될 수 있다고 명시한 PHP 문서에도 불구하고 "2 => (4 1)" 또는 "4 1"로 숫자 값을 할당하면 구문 오류가 발생합니다. 이러한 표현식이 허용되지 않는 이유는 무엇입니까?
답변:
이 제한은 이 문제는 PHP 버전 5.6에서 상수 스칼라 표현식이 도입되면서 해결되었습니다.
이 새로운 기능을 사용하면 이제 다음과 같은 다양한 컨텍스트에서 숫자 및 문자열 리터럴 및/또는 상수와 관련된 스칼라 표현식을 제공할 수 있습니다. 상수 및 속성 선언:
<code class="php">class C { const THREE = TWO + 1; const ONE_THIRD = ONE / self::THREE; }</code>
따라서 이전에 구문 오류를 일으켰던 표현식은 이제 PHP 5.6 이상에서 유효합니다.
<code class="php">public $var = array( 1 => 4, 2 => (4+1), ); public $var = 4+1;</code>
이러한 표현식은 컴파일 타임에 평가될 수 있으며 런타임 정보에 의존하지 않고 속성 초기화 상수 값에 대한 요구 사항을 충족합니다.
위 내용은 '2 => (4 1)'과 같은 간단한 표현식을 사용하여 PHP 클래스 속성을 초기화할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!