我有一個情況我有三類: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
編輯問題以匹配您給出的答案對任何其他人都沒用 –
在發佈答覆之前,我實際上已更正了問題,因爲我看到我輸入了錯誤信息。 –