有時很難在你想在編程做人類的語言來解釋,但我會嘗試...創建對象本身的新副本的一些新特性
請向我解釋,我怎麼能實現以下邏輯。假設我們有一個模板類:
$obj1=new Tmpl($somevar1, $somevar2, ...);
//we then add a new file to template
//as we don't have any files yet, new object won't created
$obj1->AddTmpl('file1.tmpl');
//we add a second file to template,
//it will be independent template
//but all properties from $obj1 must be available
$obj2=$obj1->AddTmpl('file2.tmpl');
$obj1->printTmplFile(); //should output file1.tmpl
$obj2->printTmplFile(); //should output file2.tmpl
$obj2->printInitialVars();
//will print $somevar1, $somevar2 constructed for $obj1;
//$obj1 of course must have these variables available also
因此,它的目的是爲模板的每個新文件創建新對象。每個新對象都應具有爲舊對象建立的所有屬性集。因此,在這種情況下,例如,我們不會每次使用相同的參數調用構造函數。也只有$ obj1可以創建它自己的副本。如果它是第一次調用方法AddTmpl,那麼我們不會創建新的副本。
這就是所謂的克隆。 – Pierreten 2010-06-21 22:15:01