I need to pass a variable number of strings to instantiate different classes. I can always do a switch on the size of the array:
switch(count($a)) {
case 1:
// Constructs an instance of a class with a variable number of parameters.
function make() { // Params: classname, list of constructor params
$args = func_get_args();
$classname = array_shift($args);
$reflection = new ReflectionClass($classname);
return $reflection->newInstanceArgs($args);
}
How to use:
$MyClass = make('MyClass', $string1, $string2, $string3);
Edit: if you want to use this function with your $a = array("variable1", "variable2", 'variable3", ...)
call_user_func_array('make', array_merge(array('MyClass'), $a));