什么是引用变量?
用不同的名字访问同一个变量的内容。
$a =&$b;($a 和 $b永远指向同一个地址。unset只会取消引用,不会销毁空间。对象本身就是引用传递。)
<?php
//写出程序的输出结果
$data = ['a','b','c'];
foreach($data as $k=>$v)
{
$v = &$data[$k];
}
//$k = 0;$v='a'; $v = &$data[0];
第一次$v引用赋值$data[0];第一次循环结束$data值不变 ['a','b','c'];
//$k = 0;$v='b';
第二次$v的值变为了‘b’,而$data[0]与$v相互引用,故$data[0]= 'b';
$v = &$data[1];
这个时候$v是$data[1]引用,$v不再是$data[0]的引用 故$data的值为 ['b','b','c'];
//$k = 0;$v='c'; 此次 $data[1]变为c,
$v = &$data[2];$data[2]的值不变,故$data的值为['b','c','c'];
程序结束时unset($v)并不会影响别的引用!