>  기사  >  백엔드 개발  >  PHP에서 상위 클래스 변수에 액세스하는 방법

PHP에서 상위 클래스 변수에 액세스하는 방법

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-22 23:48:281005검색

How to Access Parent Class Variables in PHP

PHP에서 상위 클래스 변수에 액세스

객체 지향 프로그래밍에서는 하위 클래스 내의 상위 클래스 변수에 액세스하는 것이 어려울 수 있습니다. 아래 코드를 고려하세요.

<code class="php">class A {
    private $aa;
    protected $bb = 'parent bb';

    // ...
}

class B extends A {
    function childfunction() {
        echo parent::$bb; // Fatal error: Undefined class constant 'bb' 
    }
}
</code>

parent::$bb를 사용하여 $bb 변수에 액세스하려고 하면 오류가 발생합니다. 이는 변수가 보호되어 있고 보호된 변수는 클래스와 해당 하위 클래스 내에서만 액세스할 수 있기 때문입니다.

해결책: $this->bb 사용

하려면 하위 클래스의 $bb 변수에 올바르게 액세스하려면 $this->bb를 사용하세요. 이 구문은 상위 클래스에서 상속된 변수를 포함하는 현재 개체의 인스턴스 변수를 참조합니다.

<code class="php">echo $this->bb;</code>

$bb 변수는 상속되고 비공개가 아니므로 현재 개체의 일부이며 다음을 수행할 수 있습니다. $this 키워드를 사용하여 액세스할 수 있습니다.

추가 정보

상위 클래스의 메소드 동작을 수정해야 하는 상황에서는 parent::를 사용하세요. 예를 들어 다음을 고려하세요.

<code class="php">class Airplane {
    private $pilot;

    public function __construct( $pilot ) {
        $this->pilot = $pilot;
    }
}

class Bomber extends Airplane {
    private $navigator;

    public function __construct( $pilot, $navigator ) {
        $this->navigator = $navigator;

        parent::__construct( $pilot ); // Assign to this->pilot
    }
}</code>

여기서 parent::는 비행기 클래스의 생성자를 확장하여 $navigator 변수를 추가합니다. 이를 통해 원하는 기능을 제공하면서 DRY 원칙을 따를 수 있습니다.

위 내용은 PHP에서 상위 클래스 변수에 액세스하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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