php关于传值引用和clone的学习分析

参考:https://blog.51cto.com/phpme/2048235

浅拷贝:变量之间是地址传递的;对象之间同时指向一个地址,大家共享一个地址;
深拷贝:变量被复制了一份,值传递;

php传值:在函数范围内,改变变量值得大小,都不不会影响到函数外边的变量值。
PHP按引用:在函数范围内,对值的任何改变,在函数外部也有所体现,因为传引用传的是内存地址

”=“对于变量来说是深拷贝,对于对象来说是浅拷贝
clone只能clone对象,对于对象来说是深拷贝(可通过__clone(){…}实现不必要完全clone整个对象)

 class Person{
     public $name = '';
 }

$JackMa=new Person();
$JackMa->name='Ma Yun';

$PoneyMa=clone $JackMa;
echo $JackMa->name."\r\n";Ma Yun
echo $PoneyMa->name."\r\n";Ma Yun

echo "\r\n";

$JackMa->name='Ma Huateng';
echo $JackMa->name."\r\n";Ma Huateng
echo $PoneyMa->name."\r\n";Ma Yun
以上可见clone对象是深拷贝
posted @ 2019-10-21 10:51  蜗牛使劲冲  阅读(6)  评论(0)    收藏  举报  来源