這篇文章帶給大家的內容是關於php克隆的實作方法介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
前一段時間,看了Java中的物件克隆。感覺自己對於php中的物件克隆也不是很清楚,所以就做了一個小測試。程式碼如下
<?php class A{ public $value = 1; } class B{ public $value = 1; public $a = null; public function __Construct(){ $this->a = new A(); } } $b = new B(); $d = 1; $e = $d; $e++; echo "写时复制\n"; echo $d."\n"; echo $e."\n"; echo "------------------------------------\n"; $c = $b; $c->a->value++; $c->value++; echo "对象中的对象变量\n"; echo $b->a->value."\n"; echo $c->a->value."\n"; echo "对象变量中的值变量\n"; echo $b->value."\n"; echo $c->value."\n"; echo "--------------------------------------\n"; $f = clone $b; $f->value++; $f->a->value++; echo "对象变量中的值变量\n"; echo $b->value."\n"; echo $f->value."\n"; echo "对象中的对象变量\n"; echo $b->a->value."\n"; echo $f->a->value."\n"; ?>
運行的結果如圖
#和Java還是一致的,結論如下
**對於值變數而言,簡單的賦值是拷貝。
對於物件變數而言,簡單的賦值是引用。
對於物件變數而言,利用clone進行賦值,物件變數中的值變數是拷貝,物件變數中的物件變數還是引用。 **
以上是php克隆的實作方法介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!