我需要传递可变数量的字符串来实例化不同的类。我总是可以对数组的大小进行切换:
switch(count($a)) {
case 1:
new Class(${$a[0]});
break;
case 2:
new Class(${$a[0]}, ${$a[1]});
break;
etc...
必须有更好的方法来做到这一点。如果我有一个字符串数组(“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());
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)