出于好奇,使用以下方法之一在PHP中创建实例有什么不同(如果有的话,例如性能)?
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'));
答案 0 :(得分:0)
直接是“正常的方式”
如果你的程序必须动态地找出类等,你可以使用ReflectionClass - 在大多数情况下不需要这样做。它通常会有更多的资源饥饿和更慢(可能不是很明显)
不确定第三个问题 - 属于KISS原则 - 由于“直接”工作,我甚至没有陷入如此扭曲的局面,甚至没有提出第三种方法。