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对象是深拷贝

浙公网安备 33010602011771号