17 轉殖物件

2021-08-31 04:32:52 字數 927 閱讀 5601

有的時候我們需要在乙個專案裡面,使用兩個或多個一樣的物件,如果你使用「new」關鍵字重新建立物件的話,再賦值上相同的屬性,這樣做比較煩瑣而且也容易出錯,所以要根據乙個物件完全轉殖出乙個一模一樣的物件,是非常有必要的,而且轉殖以後,兩個物件互不干擾。

在php5中我們使用」clone」這個關鍵字轉殖物件;

<? class person //這個人可以說話的方法, 說出自己的屬性 function say() } $p1=new person("張三", "男", 20); //使用「clone」轉殖新物件p2,和p1物件具有相同的屬性和方法。 $p2=clone $p1; $p2->say(); ?>

php5定義了乙個特殊的方法名「__clone()」方法,是在物件轉殖時自動呼叫的方法,用「__clone()」方法將建立乙個與原物件擁有 相同屬性和方法的物件,如果想在轉殖後改變原物件的內容,需要在__clone()中重寫原本的屬性和方法,」__clone()」方法可以沒有參 數,它自動包含$this和$that兩個指標,$this指向複本,而$that指向原本

<?php class person //這個人可以說話的方法, 說出自己的屬性 function say() //物件轉殖時自動呼叫的方法, 如果想在轉殖後改變原物件的內容,需要在__clone()中重寫原本的屬性和方法 function __clone() } $p1=new person("張三", "男", 20); $p2=clone $p1; $p1->say(); $p2->say(); ?

宣告:在本人測試中 轉殖方法的時候$that並不可用,我使用重新賦值來覆蓋原來的,用$this->name='我是假的'.$this->name;測試出轉殖後$this訪問。希望看文章的在這裡自己動手試一下,

上例輸出:

我的名子叫:張三性別:男我的年齡是:20

我的名子叫:我是假的張三性別:男我的年齡是:30

es6 轉殖與函式深度轉殖

es6的.運算,可以進行一層的深度轉殖 在多層的情況下,不要用這種啊.用深度轉殖函式,或者json.parse json.stringify obj 但json方式要求不能有屬性值是函式的物件 1 const obj 6 7 const obj3 8 obj3.name obj.name 這個效果和...

375 轉殖二叉樹

原題 給定乙個二叉樹,返回乙個他的 轉殖品 您在真實的面試中是否遇到過這個題?是 1 2 3 4 5返回其相同結構相同數值的轉殖二叉樹 1 2 3 4 5 標籤 二叉樹思路 建立二叉樹,不用多說,遞迴。從根節點開始建立,然後是左孩子 右孩子。左 右孩子的子樹也是相同的順序,如此遞迴下去,直到所有節點...

Mac下iterm2 轉殖會話功能

因為每次需要先登入跳轉機,再登入開發機,輸入兩次密碼,過於繁瑣,所以上網找了iterm下轉殖會話功能。網上說command下的command也要配置,親測不用,只選中下面的reuse previous sessions s directory就行。vim ssh config輸入下面三行 host ...