2
我嘗試撥打getTest()函數裏面的子類類。 首先我初始化實例分機類,所以我假設主要屬性$ ext現在應該包含它。但兒童類沒有繼承它,並獲得錯誤信息是:繼承PHP中的實例
調用一個成員函數getTest()非對象
在哪裏的問題呢?
<?php
$A = new Main;
class Main
{
protected $ext = null;
function __construct()
{
$this->ext= new Ext();
new Child;
}
}
class Child extends Main
{
function __construct()
{
echo $this->ext->getTest();
}
}
class Ext extends Main
{
public function getTest()
{
return "cool";
}
}
?>
我知道,要解決它其他的方式,我可以使用:
class Child
{
private $Main;
function __construct(&$Main) { ... }
}
,但我想知道爲什麼不工作..
這會給一個致命的錯誤,像最大函數嵌套水平達到 –
當調用父:: __構造,它再次調用子類,然後再次調用父類的子類。這將繼續循環。 –