码迷,mamicode.com
首页 > Web开发 > 详细

PHP浅拷贝、深拷贝简析

时间:2017-12-07 11:53:29      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:php   浅拷贝   深拷贝   clone   克隆   

前言:

        在PHP中, “=” 作为赋值符号,对于普通变量是深拷贝,对于对象来说是浅拷贝(对象的赋值是引用赋值)。
        注意:对象作为参数传递时,也是引用传递,无论函数定义时参数前面是否有&符号。


简述:       

    *深拷贝:赋值时值完全复制,完全的copy,对其中一个作出改变,不会影响另一个.(一直在模仿,也可以超越。)    
    *浅拷贝:赋值时,引用赋值,相当于取了一个别名。对其中一个修改,会影响另一个.(命运共同体,一荣俱荣,一损俱损)


实践:


1.普通变量的深拷贝的实现  

//普通变量的深拷贝的实现
$a='zhangsan';
$b=$a;
echo $a."\r\n";
echo $b."\r\n";


$b="lisi";
echo $a."\r\n";
echo $b."\r\n";

/**
 *输出结果
 *zhangsan
 *zhangsan
 *
 *zhangsan
 *lisi
 **/

        结论:普通变量的赋值就是深拷贝


2.普通变量的浅拷贝的实现

//普通变量的浅拷贝的实现
$c="wangwu";
$d=&$c;
echo $c."\r\n";
echo $d."\r\n";

echo "\r\n";

$d="xiaoer";
echo $c."\r\n";
echo $d."\r\n";

/**输出结果
 *wangwu
 *wangwu
 *   
 *xiaoer
 *xiaoer
 **/

结论:普通变量的赋值就是深拷贝







PHP浅拷贝、深拷贝简析

标签:php   浅拷贝   深拷贝   clone   克隆   

原文地址:http://blog.51cto.com/phpme/2048235

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!