私は三つのクラス持っている状況があります:私は間違って何をやっているPHP複数のクラスの継承
<?php
class A {
protected a_val = 'some_val';
public function read_a_val(return $this->a_val;);
}
class B extends A {
protected b_val = 'some_val_2';
public function read_b_val(return $this->b_val;);
}
class C extends B {
protected c_val = 'some_val_3';
public function read_c_val(return $this->c_val;);
public function c_read_a_val(return $this->a_val;);
}
$obj = new C;
$val = $obj->read_a_val(); // <-- throws error; undefined method
$val = $obj->a_val; // <-- throws error; cannot access protected property
$val = $obj->c_read_a_val(); // works.
?>
を? PHPはマルチレベルの継承をサポートしています...何が欠けていますか? Cの内部が親にアクセスできるようですが、問題はありませんが、$ obj変数はアクセスできません。 $ objは継承されたAのコンテンツにもアクセスできるはずですか?注:PHPのv5.6.25
は '$ obj-> read_a_val()'(としない)すべてのエラーをスローしないでください。
は、これらのページを見てください。 – ShiraNai7あなたが与えてくれた答えに合わせて質問を編集すると、誰にも役に立たなくなる –
私は間違って入力したのを見たので、私は実際に質問を修正した。 –