php模拟类名

时间:2011-11-07 12:01:17

标签: php oop

我在PHP中实现类似对象工厂的东西。 我有:

class Factory{
   public static function createObject($objectType){
      $object = new ObjectParent();
      //... implement specific code for objectChild of the given type 
      return $object;     
   }
}

class ObjectParent(){

}

这样,我得到一个对象,它的类名将是ObjectParent;我没有为我想要创建的每个ObjectChild创建一个类,所以我希望能够做到:

$newObject = Factory::createObject('myObjectType');
echo get_class($newObject);
//result -> 'myObjectType'

这甚至可能吗?怎么样? 谢谢

1 个答案:

答案 0 :(得分:3)

public static function createObject($objectType){
  eval('class '.$objectType.' extends ObjectParent {}');
  return new $objectType();   
}