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