[請益] 回傳許多array的問題

看板PHP作者 (その唇にキスして欲しい)時間12年前 (2012/08/04 00:11), 編輯推噓1(1010)
留言11則, 4人參與, 最新討論串1/1
如題 使用一個外部php 計算出三個不同的array之後想要傳回來 該用什麼方法? 第一個是直接include之後沿用變數 但是如果變數名稱重複就很頭大 因為有幾組php都要做類似的事情 第二個是寫成function並且include之後呼叫 問題是return好像不能回傳N個array 有看過寫法是 return array(0,1,2) 然後使用list($a,$b,$c)=func() 但是這是已知數量的變數 而且如果有好幾組array要回傳也不能list二微陣列 第三個是弄成string回傳 並且在主php上explode 怎麼感覺這方法很蠢.... 有什麼好主意嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.93.204

08/04 00:17, , 1F
用途在哪
08/04 00:17, 1F

08/04 00:18, , 2F
(1)第三個方法並不蠢。(2)JSON。
08/04 00:18, 2F

08/04 00:19, , 3F
(3)你當然可以把好幾個陣列包成一個大陣列傳回
08/04 00:19, 3F

08/04 00:19, , 4F
如:$ret = Array( 'x'=>$x, 'y'=>$y, 'z'=>$z)
08/04 00:19, 4F

08/04 00:20, , 5F
isset($ret['x'])可以看其中的子陣列有沒有傳回來
08/04 00:20, 5F

08/04 00:20, , 6F
接收端就一直用isset()判斷再取值,這都可以的
08/04 00:20, 6F

08/04 00:21, , 7F
問題是為啥要這樣傳。一個函數有太多傳回值不是好事,
08/04 00:21, 7F

08/04 00:22, , 8F
如果是一個計算算出三個,想辦法分成一個主函數和三個
08/04 00:22, 8F

08/04 00:22, , 9F
wrapper,或寫成class。如果本來就獨立那就不如分成三個
08/04 00:22, 9F

08/04 15:43, , 10F
回傳二維陣列很OK 啊
08/04 15:43, 10F

08/08 10:19, , 11F
就JSON吧。方便的很
08/08 10:19, 11F
文章代碼(AID): #1G6_WfX4 (PHP)