首頁  >  文章  >  後端開發  >  php克隆的實作方法介紹(程式碼範例)

php克隆的實作方法介紹(程式碼範例)

不言
不言轉載
2019-02-20 11:42:022287瀏覽

這篇文章帶給大家的內容是關於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";


?>

運行的結果如圖

php克隆的實作方法介紹(程式碼範例)

#和Java還是一致的,結論如下

**對於值變數而言,簡單的賦值是拷貝。
對於物件變數而言,簡單的賦值是引用。
對於物件變數而言,利用clone進行賦值,物件變數中的值變數是拷貝,物件變數中的物件變數還是引用。 **

以上是php克隆的實作方法介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除