0
好的,這已經是我一段時間以來的個人煩惱了。假設我有一堂課。PHP 5.3首先動態實例化一個類,而不先設置變量
class One {
public $class = 'Two';
public $member = 'member';
}
class Two {
public $member = 'Hey there';
function __construct() {
print 'Created';
}
}
$one = new One();
// case 1: works
$two_class = $one->class;
$two = new $two_class();
// case 2: fails
$two = new {$one->class}();
有什麼辦法實例從一個類memeber類沒有首先在分配名稱給一個變量?每當我想從一個屬性動態地創建一個類時,我就會死在裏面,而且我必須首先填充一個變量。任何人都可以在技術上向我解釋爲什麼這在以下情況下不起作用:
print $two->{$one->method}
會很高興地打印'你好'嗎?
從技術上講,你並不需要同樣的事情會發生()開始新的課程。另外,嘗試將它分配給一個變量$ new_one = $ one-> class; $ two = new $ new_one(); – wesside
我總是不鼓勵你做這樣的事情。只是因爲你無法確定給定的課程是否具有你認爲它具有的功能......這是一個維護恐怖!相反,只是創建一個函數,基於字符串的值創建一個對象,如函數GetMeMyClass($ input){switch($ input){case'One':return new One(); case'Two':return new Two();默認:死(「在GetMeMyClass中給出的無效類」); }} – bkwint
@wes,那是我的問題。 – thepearson