php克隆的实现方法介绍(代码示例)

不言
不言 转载
2023-04-05 10:46:02 1917浏览

本篇文章给大家带来的内容是关于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";


?>

运行的结果如图

3886246098-5c6c27ca4c961_articlex.png

和Java还是一致的,结论如下

**对于值变量而言,简单的赋值是拷贝。
对于对象变量而言,简单的赋值是引用。
对于对象变量而言,利用clone进行赋值,对象变量中的值变量是拷贝,对象变量中的对象变量还是引用。**

以上就是php克隆的实现方法介绍(代码示例)的详细内容,更多请关注php中文网其它相关文章!

声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除