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