2013-03-27 195 views
0

我有類DatabaseAccess,我從中繼承了兩個類:TeamAccess和StatisticsAccess。現在,當我從StatisticsAccess創建TeamAccess的實例時,它的類型是StatisticsAccess?這裏發生了什麼?從類創建對象返回另一個類的實例

赫雷什代碼

class StatisticsAccess extends DatabaseAccess { 
    public function getMatchesById($matchesid) { 
    $teamAccess = new TeamAccess(); 
    print_r(new TeamAccess); 
    } 
} 

class TeamAccess extends DatabaseAccess { 
    function __construct() { 
    parent::__construct(); 
    } 
} 

的print_r顯示StatisticsAccess對象。

+2

不能瑞普這一點,它按預期工作http://3v4l.org/pEYTn – Crisp 2013-03-27 11:52:43

+2

我們肯定缺少一些朋友 - http://codepad.org/ Y4ZVyeCe – Emissary 2013-03-27 11:53:37

+0

問題可能是DatabaseAccess爲PDO創建了另一個實例,並以某種方式使它將TeamAccess對象轉換爲StatisticsObject? – 2013-03-27 14:25:18

回答

0

在StatisticAccess中創建TeamAccess類只會創建一個TeamAccess類,就像在類之外做的一樣。

class StatisticsAccess extends DatabaseAccess { 
    public function test() { 
     $teamAccess = new TeamAccess(); 
     //print_r(new TeamAccess); 
     echo "teamAccess var class: " . get_class($teamAccess); 
     echo "<br/>this class: " . get_class($this); 
    } 
} 

$sa = new StatisticsAccess; 
$sa->test() 
?> 

返回:

//teamAccess var class: TeamAccess 
//this class: StatisticsAccess 
+0

當然,我知道這一點,這就是爲什麼我這裏問它,因爲它沒有..我試圖創建對象與統計訪問以外的相同代碼,它的工作原理很好.. – 2013-03-27 12:24:33

相關問題