foreach 语句,求解。

<?php
$array=array('1','1');
foreach ($array as $key=>$value)
{
    $array[$key]='2';
    echo $key."=>".$value;
}
print_r($array);
?>
这段代码结果是:0=>11=>1Array ( [0] => 2 [1] => 2 )
1、是不是echo $key."=>".$value;是不是这里输出的结果是$array数组的副本?
2、在运行$array[$key]='2'的时候是把$array数组的本身更改,而pint_r($array)输出的也是数组本身?
3、如果要更改副本的值该如何操作?

'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" title="Click Here To EnLarge">
请老鸟们讲解下,小菜鸟先谢过!!!!
[ 此帖被lgzhyan在2011-08-20 22:45重新编辑 ]

作者: lgzhyan   发布时间: 2011-08-20

foreach ($array as $key=>$value)//这里完成了$key和$value的赋值,所以里边才能输出$array原有的值
{
    $array[$key]='2';//这里完成了给数组$array里边的元素重新赋值,因而遍历完数组后,里边所有的值都变成2了,取消这一行则不会对$array本身有任何修改
    echo $key."=>".$value;//由于在第一行完成了对$key和$value的赋值,所以这里就是输出原有的值了
}
print_r($array);//$array里元素的值已经被修改,所以打印出俩2

作者: 白老师   发布时间: 2011-08-22