为什么我的递归函数不起作用?

2 php recursion

$startDate = 20130201;
$date      = 20130505;
$aDates    = $this->getDates($startDate, $date);

public function getDates($startDate, $date) {
    $tmpStartDate = date("Ymd", strtotime($startDate.'+1 Day'));
    $tmpEndDate   = date("Ymd", strtotime($tmpStartDate.'+1 Month'));

    if($date >= $tmpStartDate && $date <= $tmpEndDate) {
        //return array('startDate' => $tmpStartDate, 'endDate' => $tmpEndDate);
    } else {
        $this->getDates($tmpEndDate, $date);
    }
}
Run Code Online (Sandbox Code Playgroud)

And*_*lam 8

如果调用} else {,则递归调用不会返回任何内容.

尝试取消注释您的注释行并将"return"添加到该else子句的开头:

return $this->getDates($tmpEndDate, $date);
Run Code Online (Sandbox Code Playgroud)

  • 酷 - @ user275074如果它适合你,请标记为已回答. (2认同)