PHP反射中使用递归的问题

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);
    }

image.png
我现在没明白,类方法第一次执行时,$reflect是Person类的反射对象,当执行到foreach循环时,又递归调用了一次这个get方法,此时$reflect是Car类的反射对象,为什么当foreach中递归执行完成之后,$reflect又变成了Person类的反射对象,而没有被递归调用时所覆盖?
希望有人能帮忙解答一下,感谢!

阅读 606
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题