php提供了一种叫作“引用赋值”的方式,也就是让新变量指向原变量,一旦新变量的值发生变化,原变量的值也会随着发生变化,一下面的语句为例由于新变量var2指向原变量var1(前面加上&符号),当新变量var2的值变为“Mary”时,原变量var1的值也会随着变为“Mary”:
$var1 = "John"; //原变量var1的值为“John”
$var2 = &$var1; //新变量var2指向原变量var1(前面加上&符号)
$var2 = "Mary"; //新变量var2的值更改为“Mary”
echo $var2; //新变量var2的值更改为“Mary”,故显示出“Mary”
echo $var1; //原变量var1的值随着新变量var2更改为“Mary”,故显示出“Mary”
下面的例子是应用在foreach中:
$level = ['value'=> 0, 'label' => 'Root'];
foreach ($level as $key => &$option) {
$option = $option . 'Top';
}
这里面foreach中的value值option前加了一个‘&’,这里的意思是当foreach中的 option前加了一个‘&’,这里的意思是当foreach中的 option值发生改变时。数组$level跟着发生变化,所以上面的代码执行完之后得到的结果如下:
Array
(
[value] => 0Top
[label] => RootTop
)