我需要传递一个可变数量的字符串来实例化不同的类.我可以随时打开数组的大小:
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()); } }