PHP中的引用变量
在PHP中,引用意味着用不同的名字访问同一个变量内容。
定义引用变量:使用&符号。
PHP引用变量的原理
普通变量赋值操作
|
|
在执行如上代码时,将变量a赋值给变量b,这是并不会开辟新的内存空间,而是将变量a和b都指向同一个内存空间,当变量被改变时,才会重新开辟空间,这叫做COW(Copy Only Write),又叫做“写时复制”原则。
第一步(line1 line2):
第二步(line3):
引用变量赋值操作
|
|
执行如上代码时,将a的引用赋值给b,此时同样不会开辟新的内存空间,和普通变量赋值不同的是,引用变量不遵循COW原则,当变量a被修改后,指向同一地址空间的变量b的值也会发生变化。
第一步(line1 line2):
第二步(line3):
几点注意事项
- unset() 只会取消引用,不会销毁空间。
- 对象和资源变量类型默认进行引用赋值,因此不会有COW原则。若想复制一个对象,使用clone()函数。