このブロックでは、
foreach($inputs as $input)
$objectArray[]=new $input;
$input
インスタンス化するクラス名を含む文字列を意図しています。
代わりに、「class1(1,5)」のような奇抜なものを渡しています。これは、クラス名だけではないことは間違いありません。
コンストラクターに引数を渡す必要がある場合は、個別に行う必要があります。例えば、
foreach($inputs as $input)
$objectArray[]=new $input(1,5);
あなたが期待するように動作します。
したがって、クラス名をコンストラクタ パラメータから分割する必要があります。残念ながら、これは少し厄介になる可能性があります。すべてのクラスに対して常に 2 つの引数しか持たない場合を除き、問題が発生する可能性があります。
ReflectionClass::newInstanceArgs
おそらく、クラスの新しいインスタンスを作成し、引数の配列を提供するためにを使用する必要があることに気付くでしょう。マニュアル ページの呼び出し例を変更します。
foreach($inputs as $input) {
$class = new ReflectionClass($input);
$objectArray[] = $class->newInstanceArgs(array(1, 5));
}