我有调用自身的函数。有许多最大重复次数和重复次数计数器。该函数一直在调用自身,直到达到重复计数器等于最大重复次数为止。如果取消注释函数中的消息,则可以看到一切正常运行。但是,如果我想返回一个位置数组,则没有结果:
function myFunction($positions, $maxRepeats, $repeatCounter = 0){
if($repeatCounter < $maxRepeats){
// echo 'Test message - loop ' . $repeatCounter;
$positions[] = array('title' => $repeatCounter);
$repeatCounter++;
myFunction($positions,$maxRepeats,$repeatCounter);
} else {
// echo 'Test message - end ' . $repeatCounter;
return $positions;
}
}
$positions = array();
$result = myFunction($positions,2);
print_r($result);
感谢任何想法。
答案 0 :(得分:1)
因为该条件为真:
if($repeatCounter < $maxRepeats)
然后,该函数将永远不会遇到return
语句。看来您要返回递归结果:
return myFunction($positions,$maxRepeats,$repeatCounter);