- 论坛徽章:
- 0
|
关于
<?
$ar = array ( 1,2,3,4);
foreach ($ar as &$item)
{
print_r($item);
}
//step 1
foreach ($ar as $item)
{
//step 2
print_r($item);
}
print_r($ar);
?>
的理解:
step 1
$item 应该指向 $ar[3]
然后的循环一直是没变过。
第一次step 2循环,把 $ar[0] 赋值给 $item ,这里 $item 是指向 $ar[3]的,所以$ar[3]=1
第二次step 2循环,把 $ar[1] 赋值给 $item ,这里 $item 是指向 $ar[3]的,所以$ar[3]=2
。。。
第四次的时候
把 $ar[3] 赋值给 $item ,把 $ar[3]在第三次的时候不是已经是3了啊,那不是自己在修改自己,还是3
你可以试试这个
<?php
$ar = array ( 1,2,3,4);
foreach ($ar as &$item)
{
print_r($item);
}
foreach ($ar as $item)
{
print_r($item);
break;
}
print_r($ar);
?>
看看是不是1231
你也可以试试step 2的2次循环是不是1232
我觉得你应该好好看看c的指针。
[ 本帖最后由 lendy 于 2008-10-21 00:14 编辑 ] |
|