PHP で親クラス変数にアクセスするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-22 22:08:29
オリジナル
257 人が閲覧しました

How to Access Parent Class Variables in PHP?

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 サイトの他の関連記事を参照してください。

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