>  기사  >  백엔드 개발  >  PHP에서 복잡한 기본값을 사용하여 클래스 속성을 정의하는 방법

PHP에서 복잡한 기본값을 사용하여 클래스 속성을 정의하는 방법

Susan Sarandon
Susan Sarandon원래의
2024-10-20 13:47:02290검색

How to Define Class Properties with Complex Default Values in PHP

기본 구문이 구문 분석되지 않는 문제를 해결하는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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