1
我们有一个系统,我们有理由在我们知道它的具体类型是什么之前实例化一个对象。例如,我们希望在确定最终课程是“book”还是“cd”之前,先实例化一个类“媒体”。在PHP中实例化后更改对象的类型
以下是我们正在做的事情。我们实例化“媒体”对象,一旦我们知道它是什么类型的媒体,我们实例化一个“书”,传入媒体对象。
class Book extends Media
{
public function __construct($parent)
{
$vars = get_object_vars($parent);
foreach($vars as $key => $value)
$this->$key = $value;
}
}
//elsewhere
$item = new Media();
$item->setPrice($price);
//other code, figure out the item type
$item = new Book($item);
有没有更好的方法来做这样的事情?这是动态多态吗?
你有没有看着[此帖](http://stackoverflow.com/questions/3243900/convert-cast-an-stdclass-object-to-another-class) ? – Roberto
我没有见过。第二个反应,使用反射,看起来很有趣。 – Karptonite