Php 从另一个类动态实例化类
我举了一个例子来更好地解释这种情况。如果我运行这个Php 从另一个类动态实例化类,php,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'); 我明
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的构造函数原型是公共函数构造($var1,$va2,$var3),该怎么办呢?如果我不知道B构造函数的确切参数数量,我如何将参数传递给它?这可能不是您正在寻找的参数,但据我所知,我认为没有其他解决方案
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');
您编辑此问题以将类
A
重命名为实例化器的问题可能重复。如果您现在尝试创建A
的实例,将找不到它。您应该检查ReflectionClass::getConstructor和ReflectionClass::newInstanceArgs。这将使您能够找出参数的数量并实例化objectI更新了我的问题:我的意思是,如果我不知道B构造函数有多少个参数,该怎么办?我认为这不会起作用-不能要求构造函数显式返回某些内容,因为它们被设计为返回所请求类的实例。