从类创建对象返回另一个类的实例


Creating object from class returns instance of another class

我有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对象。

在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