将可变数量的变量传递给PHP中的类

use*_*282 10 php variables

我需要传递可变数量的字符串来实例化不同的类.我总是可以切换数组的大小:

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",...),如何在不手动考虑所有可能性的情况下实例化一个类?

web*_*ave 3

如果你必须这样做,你可以尝试:

$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)