>  기사  >  백엔드 개발  >  상수가 아닌 표현식으로 PHP 클래스 속성을 초기화할 수 있습니까?

상수가 아닌 표현식으로 PHP 클래스 속성을 초기화할 수 있습니까?

DDD
DDD원래의
2024-10-30 05:41:28814검색

Can PHP Class Properties Be Initialized with Non-Constant Expressions?

PHP 클래스 초기화 수수께끼: 속성 선언에서 표현식 평가

PHP 문서에는 클래스 속성 선언이 상수 값으로 초기화될 수 있다고 명시되어 있습니다. 그러나 사용자가 상수가 아닌 표현식으로 배열을 초기화하려고 할 때 구문 오류가 발생했습니다.

구문 오류 예:

<code class="php">public $var = array(
    1 => 4,
    2 => (4+1), // Syntax error
);</code>

기본 문제:

이 오류는 속성 선언에 상수 값만 허용되는 PHP 5.5 및 이전 버전의 제한으로 인해 발생합니다. 여기에는 컴파일 타임에 평가할 수 있는 값이 포함됩니다. 그러나 "4 1"과 같은 계산식의 사용은 금지되었습니다.

PHP 5.6의 해결 방법:

PHP 5.6에서는 이 제한이 도입되면서 해제되었습니다. 상수 스칼라 표현. 이 기능은 다음 구문을 허용합니다.

<code class="php">public $var = array(
    1 => 4,
    2 => (4+1),
);

public $var = 4+1;</code>

결론:

상수가 아닌 표현식으로 클래스 속성을 초기화할 때 이전 버전의 PHP에서 발생하는 구문 오류는 다음과 같습니다. PHP 5.6 이상 버전에서 해결되었습니다. 이제 개발자는 상수 스칼라 표현식을 사용하여 컴파일 타임에 평가할 수 있는 계산된 값으로 속성을 초기화할 수 있습니다.

위 내용은 상수가 아닌 표현식으로 PHP 클래스 속성을 초기화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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