Re: [請益] function的回傳值遇上問題

看板PHP作者 (謝謝妳的愛)時間16年前 (2009/10/20 00:26), 編輯推噓1(105)
留言6則, 1人參與, 最新討論串4/4 (看更多)
難道是我會錯意嗎... $term = shit(); echo "<br>"; print_r($term); function shit (){ for($i=0 ; $i<5 ; $i++){ $arr = array(); $arr[] = array("A{$i}","B{$i}","C{$i}"); } print_r($arr); return $arr; } 這樣因為每次回圈都會執行到$arr = array(); 這樣會清空陣列 所以無法達到你要的$arr[] 陣列中累積小陣列的效果 因此會印出 Array ( [0] => Array ( [0] => A4 [1] => B4 [2] => C4 ) ) <---函數內 Array ( [0] => Array ( [0] => A4 [1] => B4 [2] => C4 ) ) <---函數外 如果把$arr = array();拿掉 則會印出 Array ( [0] => Array ( [0] => A0 [1] => B0 [2] => C0 ) [1] => Array ( [0] => A1 [1] => B1 [2] => C1 ) [2] => Array ( [0] => A2 [1] => B2 [2] => C2 ) [3] => Array ( [0] => A3 [1] => B3 [2] => C3 ) [4] => Array ( [0] => A4 [1] => B4 [2] => C4 ) ) Array ( [0] => Array ( [0] => A0 [1] => B0 [2] => C0 ) [1] => Array ( [0] => A1 [1] => B1 [2] => C1 ) [2] => Array ( [0] => A2 [1] => B2 [2] => C2 ) [3] => Array ( [0] => A3 [1] => B3 [2] => C3 ) [4] => Array ( [0] => A4 [1] => B4 [2] => C4 ) ) 這不是你要的嗎 @@? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.184.124

10/20 00:57, , 1F
$arr = array(); 這我寫在迴圈外喔,所以叫一次只做一次
10/20 00:57, 1F

10/20 00:58, , 2F
所以不會每次都清掉,再說回傳前的print_r也幫我證實了XD
10/20 00:58, 2F

10/20 00:59, , 3F
再說就算沒東西,空陣列的話還是可以進入foreach或reset
10/20 00:59, 3F

10/20 01:00, , 4F
敘述,但因為錯誤返回的不是陣列,所以不能做這些動作
10/20 01:00, 4F

10/20 01:01, , 5F
就是因為出現一堆警告說我不該對非陣列執行reset動作
10/20 01:01, 5F

10/20 01:01, , 6F
所以我才去檢查為什麼回傳的不是陣列
10/20 01:01, 6F
文章代碼(AID): #1At9CcGJ (PHP)
文章代碼(AID): #1At9CcGJ (PHP)