从另一个动态实例化类

时间:2015-04-23 09:47:18

标签: php

我举了一个例子来更好地解释这种情况。如果我运行这个

class A
{
    public function __construct()
    {
        return new B(func_get_args());
    }
}

class B
{
    public function __construct()
    {
        var_dump(func_get_args());
    }
}

$obj = new A('a', 'b', 'c');

我得到了

array(1) {
  [0]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

但是如果B的构造函数原型是public function __construct($var1, $va2, $var3)怎么办?如果我不知道B构造函数的确切参数数量,我怎么能将参数传递给它?

1 个答案:

答案 0 :(得分:0)

这可能不是您正在寻找的那个,但据我所知,我认为没有其他解决方案。

Class A {
        public function __construct()
        {
            return new B(func_get_args());
        }
    }

    class B
    {
        public function __construct($paramArr = array())
        {
            var_dump($paramArr);
        }
    }

    $obj = new A('a', 'b', 'c');