21,882
社区成员
发帖
与我相关
我的任务
分享
$list = array(1,2,3);
foreach ( $list as &$item ) {
$a = $item;
}
//unset($item); // 正确的用法,应该是加上这句。
foreach ( $list as $item ) {
$a = $item;
}
var_dump($list); // 输出的是 { 1, 2, 2 ],有趣吧?
<?php
$list = array(1,2,3,4);
foreach ( $list as &$item ) {
}
// 这时$item指向$list[3]
foreach ( $list as $item ) {
// 第一次 这时$list[0] = 1。 所以$list[3]=1 $list = array(1,2,3,1);
// 第二次 这时$list[1] = 2。 所以$list[3]=2 $list = array(1,2,3,2);
// 第三次 这时$list[2] = 3。 所以$list[3]=3 $list = array(1,2,3,3);
// 第三次 这时$list[3] = 3。 所以$list[3]=3 $list = array(1,2,3,3);
}
print_r($list); // 1,2,3,3
<?php
$list = array(1,2,3);
foreach ( $list as &$item ) {
}
// 这时$item指向$list[2]
foreach ( $list as $item ) {
// 第一次 这时$list[0] = 1。 所以$list[2]=1 $list = array(1,2,1);
// 第二次 这时$list[1] = 2。 所以$list[2]=2 $list = array(1,2,2);
// 第三次 这时$list[2] = 2。 所以$list[2]=2 $list = array(1,2,2);
}
print_r($list); // 1,2,2
$list = array(1,2,3);
$item = & $list[2];//第一次foreach就是这个意思,$item引用数组最后一个元素;
//unset($item); // 正确的用法,应该是加上这句。
foreach ( $list as $item ) {//第一次$item被赋予1,则$list[2]相应的值也变成了1,以此类推..
break;
//$a = $item;
}
//var_dump($list); // 输出的是 { 1, 2, 2 ],有趣吧?
var_dump($list);//因为前面的break,这回变成[1,2,1]了。