기본 구문이 구문 분석되지 않는 문제를 해결하는 방법
등호 오른쪽에 표현식을 사용하여 클래스 속성을 정의하려고 할 때, PHP에서 오류가 발생합니다. 이는 PHP가 클래스 상수 및 속성의 기본값으로 기본 값만 허용하기 때문입니다.
이 제한을 우회하려면 2단계 접근 방식을 사용할 수 있습니다.
1. 상수의 정적 배열 소개
클래스 내에 정적 배열 $_types를 정의하세요. 이 배열은 가능한 모든 상수 값을 보유합니다.
<code class="php">static protected $_types = null;</code>
2. 상수 값을 검색하는 메서드 만들기
이름으로 상수 값을 검색할 수 있는 getType() 메서드를 구현합니다.
<code class="php">static public function getType($type_name) { self::_init_types(); if (array_key_exists($type_name, self::$_types)) { return self::$_types[$type_name]; } else { throw new Exception("unknown type $type_name"); } } protected function _init_types() { if (!is_array(self::$_types)) { self::$_types = [ 'STRING_NONE' => 1 << 0, // ... include all constants 'STRING_HOSTS' => 1 << 6 ]; } }</code>
3. getType()을 사용하여 클래스 속성 초기화
이제 생성자 내에서 getType() 메서드를 사용하여 클래스 속성을 초기화할 수 있습니다.
<code class="php">function __construct($fString = null) { if (is_null($fString)) { $fString = self::getType('STRING_NONE') & self::getType('STRING_HOSTS'); } var_dump($fString); }</code>
이 해결 방법을 활용하면 PHP의 구문 제한을 준수하면서 가독성과 향후 확장성을 제공합니다.
예:
<code class="php">$SDK = new SDK(SDK::getType('STRING_HOSTS'));</code>
위 내용은 PHP에서 표현식 값으로 클래스 속성을 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!