>백엔드 개발 >PHP 튜토리얼 >\'2 => (4 1)\'과 같은 간단한 표현식을 사용하여 PHP 클래스 속성을 초기화할 수 없는 이유는 무엇입니까?

\'2 => (4 1)\'과 같은 간단한 표현식을 사용하여 PHP 클래스 속성을 초기화할 수 없는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-01 12:49:58881검색

Why Can't I Initialize PHP Class Properties with Simple Expressions Like (4 1)"? " /> (4 1)"? " />

간단한 표현식을 사용한 PHP 클래스 속성 선언

질문:

속성 초기화에 상수 값이 포함될 수 있다고 명시한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.