我有一個methos遞歸問題返回null
private function test($testArray = array(),$i=0){
$i++;
$testArray = array_merge($testArray, array($i));
if($i < 10){
$this->test($testArray, $i); //recursion
}else{
return $testArray;
}
}
當我這樣稱呼它$x = $this->test(array(), 0);
從另一種方法,是假設作出的$ I數組,然後返回數組時$ i達到10.問題是它返回null 有趣的是,當我做var_dump時,我在返回之前獲取數組。這裏是我在調試代碼
private function test($testArray = array(),$i=0){
$i++;
$testArray = array_merge($testArray, array($i));
var_dump($i);
if($i < 10){
var_dump("Continued to $i");
$this->test($testArray, $i);
}else{
var_dump("Closing on $i");
var_dump($testArray);
return $testArray;
}
}
,這裏是
int 1
string 'Continued to 1' (length=14)
int 2
string 'Continued to 2' (length=14)
int 3
string 'Continued to 3' (length=14)
int 4
string 'Continued to 4' (length=14)
int 5
string 'Continued to 5' (length=14)
int 6
string 'Continued to 6' (length=14)
int 7
string 'Continued to 7' (length=14)
int 8
string 'Continued to 8' (length=14)
int 9
string 'Continued to 9' (length=14)
int 10
string 'Closing on 10' (length=13)
array (size=10)
0 => int 1
1 => int 2
2 => int 3
3 => int 4
4 => int 5
5 => int 6
6 => int 7
7 => int 8
8 => int 9
9 => int 10
null
這是殺害我的任何幫助將感激
如果'if'語句爲true,那麼你的代碼實際上並沒有返回任何東西 - 它只在返回一個變量時才返回。 – andrewsi
你是什麼意思?它應該返回數組 – Autolycus
得到它..tahnks – Autolycus