$data = array(‘a’, ‘b’, ‘c’);
foreach($data as $key=>$val) {
$val = &$data[$key];
}
问题1:程序执行时,每一次循环结束后变量$data的值是什么?请解释。(10分)
答:当第一次循环时,第一次的值 val是和 data[ key]址传递关系,共用同一地址,所以当下一次循环是 data[ key]发生改变,则共用2统一地址的第一次的 val随着发生改变
问题2:程序执行完后,变量$data的值是什么?请解释。(10分)
$data = array(‘a’, ‘b’, ‘c’);
data[ key]值为b时,是上一个值得址传递,于是上次循环的值a变为b
$data = array(‘b’, ‘b’, ‘c’);
$data = array(‘b’, ‘c’, ‘c’);
$a = 10;
$b = &$a;
echo $a .' and '. $b;
答案 10 and 10
当其中一个值发生改变时,另一个也随之改变.
$a = 10;
$b = &$a;
$b = 20;//或者$a = 20;
echo $a .' and '. $b;
答案 20 and 20