Я знаю, что если у меня есть функция в PHP с именем «foo», я могу вызвать ее динамически следующим образом:
$var = "foo";
$var();
И если foo является методом для объекта с именем «bar», я могу вызвать его динамически следующим образом:
$var = "foo";
$bar->$var();
Единственная проблема здесь — мне нужно указать не только метод из объект — но мне нужно также динамически указать сам объект — и передать комбинацию в библиотеку, которая использует строковое соглашение для динамических функций. Есть ли способ сделать это?
Очень похоже на то, что вы сделали с именем метода, вы можете указать имя класса и вызвать конструктор объекта:
$objectVar = 'myObject';
$bar = new $objectVar();
$objectVar = 'newObject';
$newBar = new $objectVar();
Это даст вам один объект для каждого из классов myObject и newObject.
Или, если вы хотите указать объект, а не инициировать новый, вы можете использовать
$var = "objectName";
$func = "functionName";
$$var->$func();