2012-02-16 9 views
0

好奇心を持たずに、次のいずれかの方法でPHPでインスタンスを作成した場合の相違点(パフォーマンスなど)について教えてください。オブジェクトを動的にインスタンス化する3つの方法の違いは?

class MyClass { } 

// Direct 
$name  = 'MyClass'; 
$instance = new $name; 

// Using ReflectionClass 
$reflector = new ReflectionClass('MyClass'); 
$instance = $reflector->newInstance(); 

// Really don't know if it's going to work 
$instance = call_user_func(array('MyClass', '__construct')); 
+1

簡単にしてください。最初のものと一緒にご利用ください。反射はより多くのリソースを使用し、そうです...私はthirf oneがどちらもうまくいくかどうか分かりません。 __constructにはreturn句がないので、明示的に呼び出されるとオブジェクトを返さないことに注意してください(私は思う) – Mchl

答えて

0

ダイレクト「は、通常の方法」ReflectionClassはあなたのプログラムがその場でクラスなどを把握していた場合はどうなるのかで使用

です - ほとんどの場合、これを実行する必要はありません。それは通常、もう少しリソースが空いていて遅いです(おそらく目立たない)

第3のものについてはわかりません - KISSの原則に該当します - 「ダイレクト」が機能するので、その第3のアプローチを考え出すことさえできます。

関連する問題