本文目錄一覽:
怎麼在php中使用clone複製對象
(1)調用Cbitmap類的LoadBitmap函數調入點陣圖資源。
(2)調用CDC::CreatCompatibleDC函數創建一個內存設備環境,以便點陣圖在內存中保留下來,並於指定設備環境兼容。
如何使用PHP5中的Clone函數
這還不僅僅是因為它對於PHP4高度的向後兼容性。
當然,PHP5數據包具備強大的對象模型和一整套新型函數與庫,更不用說它其中攜帶型異常機制,這一機制賦予了它有效處理錯誤和異常事件的能力。
通過php在伺服器上寫入文件
當然,當我們使用「函數」這一詞時,我們所談論的並不僅是通常所指的執行指定任務(如從文件中讀取數據或為所供變數應用過濾器)的那一概念。我們所指的還包括一些神奇功能,即那些不具備默認的確定執行任務且可以被PHP引擎自動調用以響應某些特定事件的函數。
開發對象指向型PHP應用程序時,_set(),_get()和_call()方法就種神奇函數的典型代表,但是還有其他一些神奇函數值得開發員深入分析。在本文里,我們將集中討論「_clone()」方法,顧名思義,使用「clone」PHP關鍵詞時可以從幕後調用這一方法。
複製對象的時候從幕後觸發函數
就像我們在之前提到的,使用clone關鍵詞的時候,_clone()函數會被自動援引。為了簡潔起見,現在我們只談論用來創建指定對象單獨副本的clone關鍵詞,而不談及創建引用。
php clone後是什麼對象
在php5中,對象的傳遞方式默認為引用傳遞,如果我們想要在內存中生成兩個一樣的對象或者創建一個對象的副本,這時可以使用「克隆」。
通過 clone 克隆一個對象
對象的複製是通過關鍵字 clone 來實現的。用 clone 克隆出來的對象與原對象沒有任何關係,它是把原來的對象從當前的位置重新複製了一份,也就是相當於在內存中新開闢了一塊空間。通過關鍵字 clone 可以克隆一個對象,語法格式如下:
$克隆對象名稱=clone $原對象名稱;
__clone()方法
對象的__clone()方法不能夠直接被調用,只有當通過關鍵字 clone 克隆一個對象時才可以使用該對象調用__clone()方法。當創建對象的一個副本時,php5將會檢查__clone()方法是否存在。如果不存在,那 么它就會調用默認的__clone()方法,複製對象的所有屬性。如果__clone方法已經定義過,那麼__clone()方法就會負責設置新對象的屬 性。所以在__clone()方法中,只需要覆蓋那些需要更改的屬性就可以了。例子如下:
PHP對象克隆clone用法示例
本文實例講述了PHP對象克隆clone用法。分享給大家供大家參考,具體如下:
淺克隆:只是克隆對象中的非對象非資源數據,即對象中屬性存儲的是對象類型,則會出現克隆不完全
?php
class
B{
public
$val
=
10;
}
class
A{
public
$val
=
20;
public
$b;
public
function
__construct(){
$this-b
=
new
B();
}
}
$obj_a
=
new
A();
$obj_b
=
clone
$obj_a;
$obj_a-val
=
30;
$obj_a-b-val
=
40;
var_dump($obj_a);
echo
‘br’;
var_dump($obj_b);
運行結果如下:
object(A)[1]
public
‘val’
=
int
30
public
‘b’
=
object(B)[2]
public
‘val’
=
int
40
object(A)[3]
public
‘val’
=
int
20
public
‘b’
=
object(B)[2]
public
‘val’
=
int
40
深克隆:一個對象的所有屬性數據都徹底的複製,需要使用魔術方法__clone(),並在裡面實現深度克隆
?php
class
B{
public
$val
=
10;
}
class
A{
public
$val
=
20;
public
$b;
public
function
__construct(){
$this-b
=
new
B();
}
public
function
__clone(){
$this-b
=
clone
$this-b;
}
}
$obj_a
=
new
A();
$obj_b
=
clone
$obj_a;
$obj_a-val
=
30;
$obj_a-b-val
=
40;
var_dump($obj_a);
echo
‘br’;
var_dump($obj_b);
運行結果如下:
object(A)[1]
public
‘val’
=
int
30
public
‘b’
=
object(B)[2]
public
‘val’
=
int
40
object(A)[3]
public
‘val’
=
int
20
public
‘b’
=
object(B)[4]
public
‘val’
=
int
10
更多關於PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《PHP網路編程技巧總結》、《PHP數組(Array)操作技巧大全》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
原創文章,作者:FPXV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140615.html