【发布时间】:2012-09-07 06:47:27
【问题描述】:
我对 php foreach 迭代有疑问。
请看我下面的代码。
代码:
$arr=array(1,2,3);
echo '$arr value : '. $arr;
echo '<br>';
foreach($arr as $arr){
echo $arr.'<br>';
}
echo '$arr value : '. $arr;
输出:
$arr value : Array
1
2
3
$arr value : 3
在迭代数组时,我使用相同的数组名称来赋值键 foreach($arr as $arr),但它工作正常。它是如何工作的?
为什么它在迭代时不覆盖数组值?
我想知道 foreach 迭代是如何工作的。
请帮助我!
提前致谢 洛根
【问题讨论】:
-
这绝对是一个令人惊讶的输出。
-
php 不会以某种方式缓存原始 $arr(数组)的内容,然后在循环时,它会更改并显示 $arr(如 1、2 和 3),然后在最后 $ arr 保留为“3”,因为它只是不保存缓存的值,回到原始文件中,因为 php 不希望你覆盖它..
-
@PraveenKumar 请仔细检查我的问题
-
@loganphp 我也看到了。嗯,呃... :P 我没有答案。它处理 PHP 解释器本身的内部工作。 :)