PHP:如何使用另一个类中的参数实例化一个类

我处于某种情况,我需要使用另一个类的实例中的参数实例化一个类.
这是原型:
//test.PHP

class test
{
    function __construct($a,$b,$c)
    {
        echo $a . '<br />';
        echo $b . '<br />';
        echo $c . '<br />';
    }
}

现在,我需要使用下面的类cls函数来实例化上面的类:

class myclass
{
function cls($file_name,$args = array())
{
    include $file_name . ".PHP";

    if (isset($args))
    {
        // this is where the problem might be,i need to pass as many arguments as test class has.
        $class_instance = new $file_name($args);
    }
    else
    {
        $class_instance = new $file_name();
    }

    return $class_instance;
}
}

现在,当我尝试创建测试类的实例,同时传递参数:

$myclass = new myclass;
$test = $myclass->cls('test',array('a1','b2','c3'));

它给出错误
缺少参数1和2;只有第一个参数通过.

如果我实例化一个在它的构造函数中没有参数的类,这个工作正常.

对于经验丰富的PHP开发人员来说,以上不应该是很大的问题.请帮忙.

谢谢

你需要Reflection http://php.net/manual/en/class.reflectionclass.php
if(count($args) == 0)
   $obj = new $className;
else {
   $r = new ReflectionClass($className);
   $obj = $r->newInstanceArgs($args);
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...