就目前的工作中的话,很少.
--
变量的引用
$a = ‘a‘; $b = ‘b‘; $c = &$a; echo $a; // 输出 a echo $b; // 输出 b echo $c; // 输出 a $a = ‘c‘; echo $c; // 输出 c
php 的引用允许你用两个变量来指向同一个内容
$a 和 $c 共用的是同一份内存空间
--
函数的传址调用 传址调用我就不多说了 下面直接给出代码
function test (&$a) { $a = $a + 100; } $b = 1; test($b); echo $b; // 输出101
如果你想修改全局变量,光写一个函数是不行的。
由于函数作用域,无法修改全局变量,所以使用 函数传址调用 可以修改全局变量
--
对象引用
class a{ var $abc="ABC"; } $b=new a; $c=$b; echo $b->abc;//这里输出ABC echo $c->abc;//这里输出ABC $b->abc="DEF"; echo $c->abc;//这里输出DEF
以上代码是在PHP5中的运行效果 在PHP5中 对象的复制是通过引用来实现的。
上列中$b=new a; $c=$b; 其实等效于$b=new a; $c=&$b; PHP5中默认就是通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本 . 为了这样的目的,PHP定义了一个特殊的方法,称为__clone.
--
引用的作用
如果在你的程序中,应用一个对象变量很多。并且希望使用完成后清除,个人建议用 "&" 方式,然后用$var=null的方式清除.
--
清除引用
$a = 1; $b =& $a; unset ($a);
echo $b; // 输出 1
是不是有点奇怪,明明他的引用已经被销毁了,怎么$b还有值?
当你 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。
PHP 会在删除变量的时候,会自动拷贝。
其实这样子,就是为了避免把$a给删掉,造成把$b也给删掉的问题。
参考日志:
https://www.cnblogs.com/thinksasa/p/3334492.html
https://www.cnblogs.com/wangtao_20/p/3411835.html