Ответ 1
Вы можете использовать API Reflection:
-
ReflectionClass::newInstanceArgs
- Создает новый экземпляр класса из заданных аргументов.
Пример:
$reflector = new ReflectionClass('Foo');
$foo = $reflector->newInstanceArgs(array('foo', 'bar'));
Обычно, если я хочу передать аргументы из $myarray в $somefunction, я могу сделать это в php, используя
call_user_func_array($somefunction, $myarray);
Однако это не работает, когда функция, которую вы хотите вызвать, является конструктором для объекта. По вполне очевидным причинам это не сработает:
$myobj = new call_user_func_array($classname, $myarray);
Есть ли что-то довольно элегантное, что работает?
Вы можете использовать API Reflection:
ReflectionClass::newInstanceArgs
- Создает новый экземпляр класса из заданных аргументов.Пример:
$reflector = new ReflectionClass('Foo');
$foo = $reflector->newInstanceArgs(array('foo', 'bar'));