在PHP中使用ReflectionClass,如何在构造函数中使用传递的参数?

在PHP中使用ReflectionClass,如何在构造函数中使用传递的参数?,php,class,reflection,Php,Class,Reflection,所以我有一个类,我想用它可以使用的其他类的动态参数量来创建它。这是动态的,因为站点是相当动态的,如果我添加了一个新类/插件,我希望我的主类能够使用它 这是我创建类的代码: $my_class = 'pages'; $my_parameters = array($class_mysql, $class_functions, $class_forms2); $my_parameters = array_merge($my_parameters, $extra_classes); $reflecti

所以我有一个类,我想用它可以使用的其他类的动态参数量来创建它。这是动态的,因为站点是相当动态的,如果我添加了一个新类/插件,我希望我的主类能够使用它

这是我创建类的代码:

$my_class = 'pages';
$my_parameters = array($class_mysql, $class_functions, $class_forms2);
$my_parameters = array_merge($my_parameters, $extra_classes);

$reflection = new ReflectionClass($my_class);
$class_pages = $reflection->newInstanceArgs($my_parameters);
$extra_类是一个数组,它是用我希望pages类能够使用的所有活动插件的类实例创建的

这一切都很好,但我现在不知道该在类文件中做什么。以下是我最初的想法:

class pages {

    protected $class_mysql = null;
    protected $class_functions = null;
    protected $class_forms2 = null;

    public function __construct($mysql_instance, $functions_instance,
    $forms2_instance) {

        $this->class_mysql = $mysql_instance;
        $this->class_functions = $functions_instance;
        $this->class_forms2 = $forms2_instance;

    }

}

如何将传递的动态参数应用于此?我一直在寻找,但找不到任何对我有意义的东西。甚至ReflectionClass上的PHP页面也停止创建类的实例,并且没有在类本身中使用参数的示例。我这样做对吗?

好的,我不确定是否允许我回答自己的问题。。。但这是我在谷歌搜索了大约一个小时后偶然发现func_get_args的结果

这就是我需要做的。我现在可以检查$classes以查看哪些类可供页面使用,并且可以通过使用$this->classes['classname']来使用这些类


我不知道这样做是否正确,所以如果有人知道,请发表评论。谢谢

如果仍然将参数用作数组。。。为什么不把它们显式地作为数组传递进来。。。?新页面$myParameters,函数uu constructarray$params..@deceze你说得对。。。我在这方面做得太久了。我根本没有理由使用ReflectionClass。删除它,谢谢!我只想提到控制反转和依赖注入,这是谷歌应该做的事情,最终会让你的生活更轻松。
class pages {

    protected $classes = array();

    public function __construct() {
        if (func_num_args() > 0) {
            $args = func_get_args();
            foreach ($args as $key => $value) {
                $this->classes[get_class($value)] = $value;
            }
        }
    }

}