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