PHP에서 상위 클래스 변수에 액세스하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-22 22:08:29
원래의
258명이 탐색했습니다.

How to Access Parent Class Variables in PHP?

PHP에서 상위 클래스 변수에 액세스: 종합 안내서

PHP에서 상위 클래스 변수에 액세스하는 것은 상속과 객체 지향 프로그래밍을 이해하는 데 중요합니다. 개념. 아래 주어진 예에는 두 개의 클래스 A와 B가 있으며, 클래스 A는 상위 클래스이고 클래스 B는 하위 클래스입니다.

class A {
    private $aa;
    protected $bb = 'parent bb';
}

class B extends A {
    function childfunction() {
        echo parent::$bb; // Error: Undefined class constant 'bb'
    }
}
로그인 후 복사

보호된 변수에 액세스하려고 할 때 문제가 발생합니다. (bb) parent::$bb를 사용하여 하위 클래스 B의 상위 클래스 A를 가져옵니다. $bb가 protected로 정의되어 있으므로 치명적인 오류가 발생합니다. 즉, 클래스 자체 및 하위 클래스에서는 액세스할 수 있지만 클래스 외부에서는 직접 액세스할 수 없습니다.

해결책:

이 문제를 해결하려면 현재 객체를 참조하는 $this 키워드를 사용할 수 있습니다.

echo $this->bb;
로그인 후 복사

$this 키워드는 현재 클래스 내의 보호된 비공개 변수와 메서드에 대한 액세스를 제공합니다. 이 경우 $bb 변수의 값을 표시할 수 있습니다.

추가 정보: parent::

$this를 사용하는 것 외에도 다음을 수행할 수 있습니다. parent:: 구문을 활용하여 상위 클래스의 변수 및 메서드에 액세스합니다. $this와 달리 parent::는 상위 클래스의 기능을 재정의하거나 확장하려는 경우에 사용됩니다.

예를 들어 Airplane 클래스를 확장하고 navigator 속성을 추가하는 새 클래스를 생성한다고 가정해 보겠습니다. :

class Airplane {
    private $pilot;
    function __construct($pilot) {
        $this->pilot = $pilot;
    }
}

class Bomber extends Airplane {
    private $navigator;
    function __construct($pilot, $navigator) {
        parent::__construct($pilot); // Call parent constructor
        $this->navigator = $navigator;
    }
}
로그인 후 복사

이 시나리오에서는 Bomber 클래스의 __construct() 메서드를 재정의하지만 비행기 클래스의 원래 기능이 유지되도록 하기 위해 여전히 parent::__construct()를 사용합니다.

$this와 parent::의 차이점을 이해하는 것은 PHP에서 상속을 효과적으로 활용하고 강력하고 유지 관리가 가능한 코드를 만드는 데 필수적입니다.

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

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!