Передавать аргументы из массива в php в конструктор

Обычно, если я хочу передать аргументы из $ 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'));