ホームページ  >  記事  >  バックエンド開発  >  PHP で子クラスの親クラス変数にアクセスする方法

PHP で子クラスの親クラス変数にアクセスする方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-22 21:31:30271ブラウズ

How to Access Parent Class Variables in Child Classes in PHP

PHP での親クラス変数へのアクセス

継承を使用する場合、親クラスから変数にアクセスする必要があります。この例では、クラス B はクラス A を拡張し、親クラスで保護されたものとして定義されている変数 $bb をエコーし​​ようとします。ただし、$bb が未定義のクラス定数であることを示すエラーがスローされます。

子クラスの親変数を表示するには、次の構文を使用します。

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

プライベート変数とは異なります。 、クラスの外部からはアクセスできませんが、保護された変数は子クラス内でアクセスできます。したがって、$bb には、子クラス内の $this キーワードを介して直接アクセスできます。 'parent bb' の期待された結果は期待どおりに出力されます。

追加情報:parent:: の使用法

parent:: 構文は、必要な場合に使用されます。親クラスからメソッドの機能を拡張します。質問に示されている例とは異なり、子クラスが単に親変数にアクセスする場合、parent:: を使用すると、継承されたメソッドの動作を変更または拡張できます。

たとえば、親クラス Airplane にプライベート変数 $pilot と、パイロットを $pilot 変数に割り当てるコンストラクター:

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

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

そして、Airplane を拡張してナビゲーター変数と拡張コンストラクターを追加する Bomber クラスを作成したいとします:

<code class="php">class Bomber extends Airplane {
    private $navigator;

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

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

parent::__construct($pilot) を使用すると、子クラスから親クラスのコンストラクターを呼び出し、ナビゲーター機能を追加しながら、パイロット引数を子クラスの $pilot 変数に割り当てることができます。これにより、親クラスの既存のコードを再利用し、それを子クラスでカスタマイズし、DRY (Don'tRepeat Yourself) 原則に準拠することができます。

以上がPHP で子クラスの親クラス変数にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。