我需要传递可变数量的字符串来实例化不同的类.我总是可以切换数组的大小:
switch(count($a)) {
case 1:
new Class(${$a[0]});
break;
case 2:
new Class(${$a[0]}, ${$a[1]});
break;
etc...
Run Code Online (Sandbox Code Playgroud)
必须有更好的方法来做到这一点.如果我有一个字符串数组("variable1","variable2","variable3",...),如何在不手动考虑所有可能性的情况下实例化一个类?
如果你必须这样做,你可以尝试:
$variable1 = 1;
$variable2 = 2;
$variable3 = 3;
$variable4 = 4;
$varNames = array('variable1', 'variable2', 'variable3', 'variable4');
$reflection = new ReflectionClass('A');
$myObject = $reflection->newInstanceArgs(compact($varNames));
class A
{
function A()
{
print_r(func_get_args());
}
}
Run Code Online (Sandbox Code Playgroud)