当前位置: 首页 > 后端技术 > PHP

php浅拷贝和深拷贝

时间:2023-03-29 23:05:05 PHP

在PHP中,“=”作为赋值符号,对普通变量是深拷贝,对对象是浅拷贝(对象赋值是引用赋值)。当一个对象作为参数传递时,它也是通过引用传递的,而不管函数定义时参数前面是否有&符号。概念:深拷贝:赋值时,将值完全复制,完整拷贝,对其中一个进行更改不会影响另一个浅拷贝:赋值时,通过引用赋值,相当于取了一个别名。修改其中一个会影响另一个的做法在PHP中,当“=”赋值时,普通对象是深拷贝,而对象是浅拷贝。即对象的赋值是引用赋值。(对象作为参数传递时,也是引用传递,不管函数定义时参数前面是否有&符号)aa=200;echo$a2->aa;//输出200echoPHP_EOL;如果要复制值,php提供了clone函数来复制对象。例如:aa=200;echo$a2->aa;//输出100echoPHP_EOL;