PHP での親クラス変数へのアクセス: 総合ガイド
PHP での親クラス変数へのアクセスは、継承とオブジェクト指向プログラミングを理解するために重要です概念。以下の例では、A と B という 2 つのクラスがあり、クラス A が親クラス、クラス B が子クラスです。
class A { private $aa; protected $bb = 'parent bb'; } class B extends A { function childfunction() { echo parent::$bb; // Error: Undefined class constant 'bb' } }
保護された変数にアクセスしようとすると問題が発生します。 parent::$bb を使用して、子クラス B から親クラス A の (bb) を取得します。 $bb は保護されたものとして定義されているため、致命的なエラーが発生します。つまり、クラス自体内およびサブクラスからはアクセスできますが、クラスの外部からは直接アクセスできません。
解決策:
この問題を解決するには、現在のオブジェクトを参照する $this キーワードを使用できます。
echo $this->bb;
$this キーワードは、現在のクラス内の保護されたプライベート変数とメソッドへのアクセスを提供します。この場合、$bb 変数の値を表示できるようになります。
追加情報:parent::
の使用に加えて、$this を使用することもできます。 parent:: 構文を利用して、親クラスの変数とメソッドにアクセスします。 $this とは異なり、parent:: は、親クラスの機能をオーバーライドするか拡張する場合に使用されます。
たとえば、Airplane クラスを拡張し、ナビゲーター プロパティを追加する新しいクラスを作成するとします。 :
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() メソッドをオーバーライドしますが、Airplane クラスの元の機能が維持されるようにするために、依然としてparent::__construct() を使用します。
$this とparent:: の違いを理解することは、PHP で継承を効果的に活用し、堅牢で保守可能なコードを作成するために不可欠です。
以上がPHP で親クラス変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。