PHP-为什么我的函数不返回任何内容

时间:2020-01-12 22:31:54

标签: php function

我有调用自身的函数。有许多最大重复次数和重复次数计数器。该函数一直在调用自身,直到达到重复计数器等于最大重复次数为止。如果取消注释函数中的消息,则可以看到一切正常运行。但是,如果我想返回一个位置数组,则没有结果:

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);

感谢任何想法。

1 个答案:

答案 0 :(得分:1)

因为该条件为真:

if($repeatCounter < $maxRepeats)

然后,该函数将永远不会遇到return语句。看来您要返回递归结果:

return myFunction($positions,$maxRepeats,$repeatCounter);