作者saininniang (sob)
看板PHP
标题[请益] 自定函式无法更改阵列值?
时间Sun Dec 17 22:06:58 2006
<?
$AA=array(array(0,1,1),
array(0,0,1),
array(0,0,0));
$AA[0][2]=5; //更改阵列值
for ($i=0; $i<3; $i++) //检查结果
{
for ($j=0; $j<3; $j++)
{
echo $AA[$i][$j];
}
echo "<br>";
}
?>
上面的是一般的作法,没问题
-----------------------------------------------
下面的才是有问题的
<?
run ($AA,$ii,$jj)
{
$AA[$ii][$jj]=5;
}
?>
<?
$AA=array(array(0,1,1),
array(0,0,1),
array(0,0,0));
run($AA, 0 , 2); //////////////???
for ($i=0; $i<3; $i++) //检查结果
{
for ($j=0; $j<3; $j++)
{
echo $AA[$i][$j];
}
echo "<br>";
}
?>
为什麽这样写的话阵列值不会变更?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.142.122
1F:推 foxzgerald:run(&$AA, 0 , 2) // try this 12/17 22:10
2F:→ foxzgerald:it should be passed by reference 12/17 22:10
3F:→ saininniang:可以work了,感谢,请问这里的&是什麽意思? 12/17 22:22
4F:推 foxzgerald:传参考(reference)的意思. 是关於记忆体的运算子 12/17 22:26
5F:→ foxzgerald:传递参数时,至少有传值(by value)和参考(by reference 12/17 22:28
6F:→ foxzgerald:c++ 里头还有传址(by address) 12/17 22:29
7F:→ foxzgerald:有兴趣翻一下书.. 或是 google, wiki 一下吧 :) 12/17 22:30
8F:→ foxzgerald:在传递参数或指定(assign)物件时. 都需要注意一下 12/17 22:32