私はPHPを初めて使い、2つの質問があります。私は次のコードを試したとき:"this" in class継承、PHP
<?php
class Base{
public function getId(){
return $this->id;
}
};
class Derived extends Base{
public $id = 1;
public function id(){
return $this->id;
}
};
$d1 = new Derived();
echo $d1->id();//echo 1
echo $d1->getId();//echo 1
?>
上記のコードは2つの1をエコーします。
私は次のコードをしようとしたときただし、:
<?php
class Base{
public function getId(){
return $this->id;
}
};
class Derived extends Base{
private $id = 1;
public function id(){
return $this->id;
}
};
$d1 = new Derived();
echo $d1->id();//echo 1
echo $d1->getId();//Cannot access private property Derived::$id
?>
を第2の機能の呼び出しは私にエラー「派生プライベートプロパティにアクセスすることはできません:: $ ID」を提供します。だから私の質問は$ d1-> getId()を作成したときに参照されたBaseの$ thisは何ですか?
$ thisがd1インスタンスを参照している場合、private $ idにアクセスできるはずです。しかし、$ thisが$ d1の内部のBaseを参照する場合、Derivedクラスから$ idプロパティを取得するにはどうすればよいですか?ありがとう!
'id()'メソッドは冗長です:継承した 'getId()'メソッドと同じことを行います – RomanPerekhrest
'$ id'はDerivedクラスではプライベートなので、Baseクラスではアクセスできません – RiggsFolly
http:// stackoverflow 。com/questions/7469759/access-child-property-from-parent-scope – RomanPerekhrest