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

Mary-Kate Olsen
リリース: 2024-10-22 23:48:28
オリジナル
912 人が閲覧しました

How to Access Parent Class Variables in PHP

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 を使用する

To子クラスの $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:: は Airplane クラスからコンストラクターを拡張して、$navigator 変数を追加します。これにより、必要な機能を提供しながら DRY 原則に従うことができます。

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

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!