[請益] function的回傳值遇上問題
是這樣的
我正在寫一個東西
會呼叫某個function來判別某個文字化的時間
在某個給定的時間範圍內可以出現幾次
不過判斷上並沒有什麼問題
問題不是出在這
而是出在回傳值上,如同標題所述
我用了迴圈,將所有待測的時間帶丟進function內
回傳值則是時間戳記的[陣列]
function內會在被呼叫時產生一個新的空白array(使用 $a = array(); 的做法)
然後每找到一個時間就用$a[] = $timeStamp的方式填入陣列
最後再 return $a; 回傳結果
我是想這樣就算完全沒有符合資料,也該會回傳一個空陣列
目前有兩個待測資料
跑第一筆時可以跑出正確結果
我在function內,以及收到回傳值後都用print_r各印一次
第一筆在function的內外印出的結果相符
第二筆卻無論如何也收不到
傳回的東西甚至不是array
但在function內印出的結果,第二筆是有找到資料的
格式也跟第一筆相似,甚至裡面找到的結果數也相同
只有數值不同
回傳回來卻變成虛無
既然直到回傳前,結果都是正確的
問題顯然是出在回傳的過程中
這個function裡面並沒有任何跟外部共用記憶體位置的變數
(記得要用&的傳址呼叫 或 宣告成全域變數 才會有共用吧)
所以我現在是不曉得為什麼會有這個問題
有沒有人能幫我解答
第一次有做出來也有成功丟回來
第二次同樣的事情,有做出來卻收不回來的可能肇因是什麼呢?
p.s. 因為是用迴圈,所以兩次都是同一行程式碼
※跟第一次的結果做個比較
==============================
---[2]---
Array ( [0] => Array ( [0] => 1259938800 [1] => 1259944200 [2] => 1259884800
) [1] => Array ( [0] => 1260025200 [1] => 1260030600 [2] => 1259971200 ) )
get : Array ( [0] => Array ( [0] => 1259938800 [1] => 1259944200 [2] =>
1259884800 ) [1] => Array ( [0] => 1260025200 [1] => 1260030600 [2] =>
1259971200 ) ) .
---[2]---
Array ( [0] => Array ( [0] => 1259933400 [1] => 1259940600 [2] => 1259884800
) [1] => Array ( [0] => 1260019800 [1] => 1260027000 [2] => 1259971200 ) )
get : .
==============================
原來程式碼是
$results = funA(....); (中間省略不打,有好幾個參數)
print_r($results);
echo '.<br />';
'---[2]---'的下面第一行是function內的print_r
'get : '後的則是收到回傳值以後印的print_r
所以第一次會看到'get : '後面接著回傳結果,然後是小數點'.'之後換行
第二次'get : '後面卻直接接上 '.'
所以我也不知道這算是什麼東西
※好像也只能提供函式了 http://radiantgarden.myweb.hinet.net/tFunc.zip
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.236.81
推
10/19 21:08, , 1F
10/19 21:08, 1F
→
10/19 21:14, , 2F
10/19 21:14, 2F
※ 編輯: Peruheru 來自: 118.168.236.81 (10/19 21:19)
※ 編輯: Peruheru 來自: 118.168.236.81 (10/19 21:21)
→
10/19 21:28, , 3F
10/19 21:28, 3F
→
10/19 21:31, , 4F
10/19 21:31, 4F
→
10/19 21:32, , 5F
10/19 21:32, 5F
推
10/19 21:43, , 6F
10/19 21:43, 6F
※ 編輯: Peruheru 來自: 118.168.236.81 (10/19 21:51)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):