bb` `parent::bb` を超えますか?" />
PHP での親クラス変数へのアクセス
提供されたコードは、子クラスが親クラスから継承した保護変数 $bb にアクセスできない問題を示しています。 。これを解決するには、構文 $this->bb を使用して変数にアクセスできます。
<code class="php">class A { private $aa; protected $bb = 'parent bb'; function __construct($arg) { //do something.. } private function parentmethod($arg2) { //do something.. } } class B extends A { function __construct($arg) { parent::__construct($arg); } function childfunction() { echo $this->bb; // Outputs 'parent bb' } } $test = new B($some); $test->childfunction();</code>
$this->bb を使用すると、継承された変数が現在のオブジェクトの一部になり、次のことができることになります。他のインスタンス変数と同様にアクセスできます。
追加の注意:
$this->bb を使用すると当面の問題は解決されますが、$this との違いを理解することが重要です。 ->およびparent:: 継承された変数とメソッドにアクセスするとき。
$this->は現在のオブジェクトを参照し、parent:: は親クラスを参照します。 $this->は継承された変数に直接アクセスするために使用できますが、parent:: は親クラスのメソッドを呼び出すか、親クラスの静的変数にアクセスするために使用されます。
たとえば、元のクラスのメソッドにアクセスしながら、親クラスのメソッドをオーバーライドしたい場合親クラスからメソッドを取得するには、次の構文を使用できます:
<code class="php">class Child extends Parent { function myMethod() { parent::myMethod(); // Calls the parent class's myMethod() } }</code>
以上がPHP で保護された親クラス変数にアクセスする: なぜ `parent::bb` ではなく `$this->bb` を使用するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。