[請益] 自定函式無法更改陣列值?

看板PHP作者 (sob)時間19年前 (2006/12/17 21:57), 編輯推噓2(206)
留言8則, 2人參與, 最新討論串1/1
<? $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

12/17 22:10, , 1F
run(&$AA, 0 , 2) // try this
12/17 22:10, 1F

12/17 22:10, , 2F
it should be passed by reference
12/17 22:10, 2F

12/17 22:22, , 3F
可以work了,感謝,請問這裡的&是什麼意思?
12/17 22:22, 3F

12/17 22:26, , 4F
傳參考(reference)的意思. 是關於記憶體的運算子
12/17 22:26, 4F

12/17 22:28, , 5F
傳遞參數時,至少有傳值(by value)和參考(by reference
12/17 22:28, 5F

12/17 22:29, , 6F
c++ 裡頭還有傳址(by address)
12/17 22:29, 6F

12/17 22:30, , 7F
有興趣翻一下書.. 或是 google, wiki 一下吧 :)
12/17 22:30, 7F

12/17 22:32, , 8F
在傳遞參數或指定(assign)物件時. 都需要注意一下
12/17 22:32, 8F
文章代碼(AID): #15XKoziC (PHP)
文章代碼(AID): #15XKoziC (PHP)