2013-03-27 166 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