-1

$class というクラスの名前と、配列 $args のコンストラクターに渡す引数を指定すると、実際に $class の新しいインスタンスを作成できますか?

else-if チェーン (サポートしたい引数の最大数まで) と eval を使用することは可能ですが、どちらもクリーンではありません。理想的には、1 行または 2 行だけのものを探しています。

4

2 に答える 2

3

Reflectionを使用してそれを行うことができます。具体的に探しているメソッドはnewInstanceArgsです

$class = 'YourClass';
$args = array ('a', 'b');

$reflection = new \ReflectionClass($class); 
$classInstance = $reflection->newInstanceArgs($args); 
于 2013-05-17T08:17:41.237 に答える