首先扩展一下php变量内核结构:
引用是什么?
在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针:例如你不能对他们做指针运算,他们并不是实际的内存地址, 替代的是,引用是符号表别名。
注意在PHP 中,变量名和变量内容是不一样的, 因此同样的内容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是 Unix 文件系统中的硬链接。
引用做什么?
PHP的引用允许用两个变量来指向同一个内容。
<?php
$a =& $b;
?>
这意味着 a和 b 指向了同一个变量。
Note:
$a 和 $b 在这里是完全相同的,这并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一个地方。
Note:
如果具有引用的数组被拷贝,其值不会解除引用。对于数组传值给函数也是如此。
引用做的第二件事是用引用传递变量。这是通过在函数内建立一个本地变量并且该变量在呼叫范围内引用了同一个内容来实现的。例如:
“`
引用做的第三件事是引用返回。
### 引用不是什么
### 引用传递
可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。语法如下:
### 引用返回
引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。不要用返回引用来提高性能,引擎足够聪明来自己进行优化。仅在有合理的技术原因时才返回引用!要返回引用,使用此语法:
### 取消引用
当unset一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了