有的時候我們需要在乙個專案裡面,使用兩個或多個一樣的物件,如果你使用「new」關鍵字重新建立物件的話,再賦值上相同的屬性,這樣做比較煩瑣而且也容易出錯,所以要根據乙個物件完全轉殖出乙個一模一樣的物件,是非常有必要的,而且轉殖以後,兩個物件互不干擾。
在php4中我們使用「clone」這個關鍵字轉殖物件;12
3456
78910
1112
1314
1516
1718
1920
2122
2324
2526
<?
class
person
// 這個人可以說話的方法,說出自己的屬性
function
say()
}
$p1
=
new
person(
"張三"
,
"男"
, 20);
// 使用「clone」轉殖新物件p2,和p1物件具有相同的屬性和方法。
$p2
=
clone
$p1
;
$p2
->say();
?>
php4定義了乙個特殊的方法名「__clone()」方法,是在物件轉殖時自動呼叫的方法,用「__clone()」方法將建立乙個與原物件擁有相同屬 性和方法的物件,如果想在轉殖後改變原物件的內容,需要在__clone()中重寫原本的屬性和方法, 「__clone()」方法可以沒有引數,它自 動包含$this和$that兩個指標,$this指向複本,而$that指向原本;12
3456
78910
1112
1314
1516
1718
1920
2122
2324
2526
2728
2930
3132
<?
class
person
// 這個人可以說話的方法, 說出自己的屬性
function
say()
// 物件轉殖時自動呼叫的方法, 如果想在轉殖後改變原物件的內容,需要在__clone()中重寫原本的屬性和方法
function
__clone()
}
$p1
=
new
person(
"張三"
,
"男"
, 20);
$p2
=
clone
$p1
;
$p1
->say();
$p2
->say();
?>
上例輸出:
我的名子叫:張三 性別:男 我的年齡是:20我的名子叫:我是假的張三 性別:男 我的年齡是:30
JAVA 物件轉殖clone
有時候我們希望轉殖乙個已存在的物件,並對其進行操作,但是不希望改變原物件,這時使用clone技術就非常方便了。但是使用clone,也有一些需要注意的地方,因為clone有淺層轉殖和深層轉殖。還是習慣先直接上 結合 講解。注 如果你希望某個類具有clone功能,該類必須實現介面cloneable,它是...
PHP轉殖物件clone
有的時候我們需要在乙個專案裡面,使用兩個或多個一樣的物件,如果你使用 new 關鍵字重新建立物件的話,再賦值上相同的屬性,這樣做比較煩瑣而且也容易出錯,所以要根據乙個物件完全轉殖出乙個一模一樣的物件,是非常有必要的,而且轉殖以後,兩個物件互不干擾。class person 這個人可以說話的方法,說出...
物件的轉殖(clone)
讓物件obj1轉殖物件obj var obj var obj1 function clone origin,target clone obj,obj1 使用for.in把obj物件的每乙個屬性值提取出來並賦值給物件obj1,這就完成了轉殖。關於以上那個轉殖,為了防止使用者不傳target的形參或者是...