PHP 클래스 속성을 선언하는 동안 함수로 초기화하려고 하면 "Parse 오류가 발생합니다. : 구문 오류, 예기치 않은 T_FUNCTION" 오류가 발생할 수 있습니다.
<code class="php">class AssignAnonFunction { private $someFunc = function() { echo "Will Not work"; }; }</code>
이는 PHP가 함수와 같이 상수가 아닌 값으로 속성을 초기화하는 것을 허용하지 않기 때문에 발생합니다. PHP 매뉴얼에서는 다음과 같이 설명합니다.
"속성은 public, protected 또는 private 키워드 중 하나를 사용하고 그 뒤에 일반 변수 선언을 사용하여 정의됩니다... 이 초기화는 상수 값이어야 합니다... 컴파일 시 평가할 수 있으며 평가를 위해 런타임 정보에 의존해서는 안 됩니다."
따라서 선언 시 속성에 함수를 할당할 수 없습니다.
그러나 속성은 __construct() 메서드를 사용하여 함수로 초기화할 수 있습니다.
<code class="php">class AssignAnonFunctionInConstructor { private $someFunc; public function __construct() { $this->someFunc = function() { echo "Does Work"; }; } }</code>
이는 __construct() 메서드가 런타임에 호출되어 다음을 포함한 동적 값 할당을 허용하기 때문에 가능합니다. 기능을 제공합니다.
위 내용은 선언 시 PHP 클래스 속성을 함수로 초기화할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!