PHP传递一个类作为参考?

时间:2011-05-31 04:23:48

标签: php python

在Python中,您可以执行以下操作:

class SomeClass(object): pass
s = SomeClass
someClassInstance = s()

你怎么能在PHP中实现同样的效果?据我所知,你不能这样做?这是真的吗?

2 个答案:

答案 0 :(得分:7)

您可以创建动态类名的实例;只需将类的名称作为字符串传递:

class SomeClass {}
$s = 'SomeClass';
$someClassInstance = new $s();

答案 1 :(得分:1)

使用反射:

class SomeClass {}
$s = new ReflectionClass('SomeClass');
$someClassInstance = $s->newInstance();

使用反射的好处是它会在类不存在的情况下抛出一个可捕获的异常。