看看代码,再解释一遍。
复制代码代码如下所示:
< PHP
$array =阵列(A,B,C,D);
foreach(数组达关键= > $ Val){
做某事
}
回波输出;
返回$ 3;
$ val = e;
print_r($array); / /阵列输出({ 0 } = >一{ 1 } = { 2 } = > > B C { 3 } = > D)
>

在foreach循环,当循环结束,两美元和美元价值的关键变量是不会自动释放的价值将被保留。
当foreach使用引用,会出现如下情况,以及需要注意的。
复制代码代码如下所示:
< PHP
$array =阵列(A,B,C,D);
foreach(数组达关键= > $ Val){ / /参考
做某事
}
回波输出;
返回$ 3;
$ val = e;
print_r($array); / /阵列输出({ 0 } = >一{ 1 } = { 2 } = > > B C { 3 } = > E)
>

当美元价值变量使用一个参考,当执行foreach循环结束,$瓦尔指向相同的内存地址为$阵列{ 3 }。
当美元瓦尔变量存在foreach循环结束后,美元的val的值是foreach循环结束后发生了变化,这是相当于改变价值$阵列{ 3 }。