php 拷贝一个值

2025-12-16 05:05:36
推荐回答(1个)
回答1:

php拷贝概念和大部分语言的拷贝概念一样。其实就是个值和引用的区别。一般而言,你实例化1个对象以后,把其赋值给某个变量,其实只是把这个实例在内存里的地址告诉了变量,所以当你把这个变量赋值给另外1个变量时候,2个变量都是保存了同一个实例的地址。当你通过其中1个变量去修改内容,那么你通过另外一个变量也能读取到修改后的值。
比如假设fooclass有个x的属性
$bar = new fooclass()
$foo = bar
这里的话,如果执行$foo.x = 5,那么$bar.x也是5
而fin_var这个拷贝函数,则是把实例在内存里边重新复制了1份并且把其返回。这种情况下$bar 和$foo已经指向不同的实例了。修改$foo的实例并不会对$bar产生影响。
还是上例,再执行$foo.x = 5 ,你访问$bar.x就不会是5了。而是其初始值。