public function get($class)
{
if (isset($this->objectTree[$class])) {
$class = $this->objectTree[$class];
}
$reflect = new \ReflectionClass($class);
dump($reflect);
$construct = $reflect->getConstructor();
if (!$construct) {
return new $class;
}
$params = $construct->getParameters();
if (!$params) {
return new $class;
}
foreach($params as $param) {
$class = $param->getClass();
if ($class) {
$args[] = $this->get($class->name);
}
}
dump($reflect);
return $reflect->newInstanceArgs($args);
}
我现在没明白,类方法第一次执行时,$reflect是Person类的反射对象,当执行到foreach循环时,又递归调用了一次这个get方法,此时$reflect是Car类的反射对象,为什么当foreach中递归执行完成之后,$reflect又变成了Person类的反射对象,而没有被递归调用时所覆盖?
希望有人能帮忙解答一下,感谢!