기본 구문이 구문 분석되지 않는 문제를 해결하는 방법
PHP의 엄격한 구문 규칙은 복잡한 기본값으로 클래스 속성을 정의할 때 장애물이 될 수 있습니다. (1
PHP의 클래스 선언 제한 이해
PHP에서 클래스 상수 또는 속성의 기본값은 다음과 같은 기본 값이어야 합니다.
const ABC = 8; static $GHI = 15;
이 제한은 선언문이 부작용을 생성해서는 안 된다는 원칙에서 비롯됩니다.
사용자 정의 유형 생성 및 표현식으로 초기화
이 제한을 극복하기 위해 사용자 정의 유형을 생성하고 클래스 선언 외부의 표현식으로 초기화할 수 있습니다.
class SDK { // Example of self-created type static private $STRING_NONE = 1 << 0; } $fString = SDK::$STRING_NONE;
원래 클래스 리팩터링
이 해결 방법을 원래 클래스 예제에 적용:
class SDK { static private $_types = null; static public function getType($type_name) { self::_init_types(); return self::$_types[$type_name]; } static private function _init_types() { if (!is_array(self::$_types)) { self::$_types = array( 'STRING_NONE' => 1 << 0, // ... rest of types here ); } } function __construct($fString = null) { if (is_null($fString)) { $fString = self::getType('STRING_NONE') & self::getType('STRING_HOSTS'); } } } $SDK =& new SDK(SDK::getType('STRING_HOSTS'));
이 접근 방식을 사용하면 내부에서 유형을 정의하고 사용할 수 있습니다. 표현식의 결과인 기본값을 수용하면서 클래스입니다.
위 내용은 PHP에서 복잡한 기본값을 사용하여 클래스 속성을 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!