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

PHP深浅拷贝

时间:2020-05-14 15:23:05      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:修改   深拷贝   index   you   class   变量赋值   完全   复制   另一个   

深拷贝:赋值时值完全复制,完全的copy,对其中一个作出改变,不会影响另一个.   
浅拷贝:赋值时,引用赋值,相当于取了一个别名。对其中一个修改,会影响另一个.

1.普通变量赋值为深拷贝

<?php
$a=‘me‘;
$b=$a;
echo (‘a: ‘.$a.‘ b:‘.$b);
$b=‘you‘;
echo "\r\n";
echo (‘a: ‘.$a.‘ b:‘.$b);
?>

结果

a: me b:me
a: me b:you

2.普通变量的引用赋值为浅拷贝

<?php
$a=‘me‘;
$b=&$a;
echo (‘a: ‘.$a.‘ b:‘.$b);
$b=‘you‘;
echo "\r\n";
echo (‘a: ‘.$a.‘ b:‘.$b);
?>

结果

a: me b:me
a: you b:you

3.对象的赋值为浅拷贝

<?php
class top{
    public $file;
}
$a=new top();
$a->file=‘flag.php‘;
$b=$a;
echo (‘a:‘.$a->file.‘ b: ‘.$b->file);
echo "\r\n";
$b->file=‘index.php‘;
echo (‘a:‘.$a->file.‘ b: ‘.$b->file);
?>

结果

a:flag.php b: flag.php
a:index.php b: index.php

4.对象的clone为深拷贝

<?php
class top{
    public $file;
}
$a=new top();
$a->file=‘flag.php‘;
$b=clone $a;
echo (‘a:‘.$a->file.‘ b: ‘.$b->file);
echo "\r\n";
$b->file=‘index.php‘;
echo (‘a:‘.$a->file.‘ b: ‘.$b->file);
?>

结果

a:flag.php b: flag.php
a:flag.php b: index.php

PHP深浅拷贝

标签:修改   深拷贝   index   you   class   变量赋值   完全   复制   另一个   

原文地址:https://www.cnblogs.com/LLeaves/p/12888407.html

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