Я пытаюсь избежать использования eval
. Я могу динамически создать экземпляр класса следующим образом:
class myclass {} $my_class_name = 'myclass'; $obj = new $myclass();
Если конструктор выглядит следующим образом:
class myclass { public function __construct( $argument1, $argument2 ) {} }
и у меня есть значения аргументов в массиве, как я могу динамически создать экземпляр класса и передать его динамические аргументы? Имейте в виду, что у меня нет способа изменить класс, поэтому я должен работать над тем, как его использовать.
благодаря
ReflectionClass :: newInstanceArgs, похоже, именно то, что вы ищете.
$obj = new $myclass($array['key1'], $Arr['key2'], ...);