
日期:2006-09-26 作者:喜騰小二 來源:PHPChina
| 透過完全地複製內容建立一個物件的拷貝不是通常想要的行為。需求的一個好的實例適合於拷貝構造函式, 如果有一個物件描述一個GTK視窗和物件儲存這個GTK視窗的資源,當妳建立一個副本,妳或許想建立一個相同的內容新視窗使用和儲存新物件資源的新視窗。另一個例子是當妳複製父物件時如果儲存一個引用給另一個物件,妳想建立其他類的一個新實例來分開拷貝所屬的複製品。一個物件的拷貝是使用clone關鍵字來建立的(如果可能的話可以調用物件的__clone()方法),一個物件的__clone()方法不能被直接宣告。 PHP程式碼如下: 當一個物件被克隆時,PHP5將執行一個所有物件的內容的淺拷貝。任何對其它變數引用的內容將隻保留引用。如果一個__clone()方法被定義,然後重開啓新檔立一個物件的克隆方法來允許任何必需的內容當它需要被改變時調用。 例子 19-30. 克隆一個物件 PHP程式碼如下: 上例將輸出: [Copy to clipboard]CODE: Original Object: MyCloneable Object ( [object1] => SubObject Object ( [instance] => 1 ) [object2] => SubObject Object ( [instance] => 2 ) ) Cloned Object: MyCloneable Object ( [object1] => SubObject Object ( [instance] => 3 ) [object2] => SubObject Object ( [instance] => 2 ) ) |