官方说明:
在PHP中引用意味着用不同的名字访问同一个变量内容。这并不像C的指针:例如你不能对他们做指针运算,他们并不是实际的内存地址。替代的是,引用是符号表别名。注意在PHP中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是Unix的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是Unix文件系统中的硬链接。
:表示引用,在变量或者函数、对象等前面加上该符号
符号使用场景
变量引用
引用允许用两个变量来指向同一个内容
变量引用函数引用传递(传址调用)
可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值
函数引用传递函数引用返回
引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。不要用返回引用来增加性能,引擎足够聪明来自己进行优化。仅在有合理的技术原因时才返回引用!
函数引用返回对象引用
在PHP5以上,对象的=赋值和传递都是引用。要想实现拷贝副本,需要通过clone函数进行处理。
PHP中对象的深拷贝,指的是拷贝对象副本,也就是用clone函数拷贝出一个完全一样的对象,修改该对象,并不会影响原始对象;
PHP中对象的浅拷贝,指的是对象进行引用赋值,其中一个改变,另一个也随之改变。
对象引用引用取消
使用unset(),unset一个引用,只是断开了变量名和变量内容之间的绑定。(这并不意味着变量内容被销毁了)