PHP递归函数有什么问题

  • 本文关键字:问题 递归函数 PHP php
  • 更新时间 :
  • 英文 :


如果是周末,我会显示今天或下一个工作日的日期。函数的工作原理很好,但返回有问题。

$today = todayDate('2014-10-18'); // Saturday
    function todayDate($date) {
        if(date('N', strtotime($date)) >= 6) {
            echo 'If - ' . $date . '<br/>';
            $date = date('Y-m-d', strtotime('+1 day', strtotime($date)));
            todayDate($date);
        } else {
            echo 'Else - ' . $date . '<br/>';               
        }
        return $date;
    }
    echo '<br/><br/>Today: ' . $today . '<br/><br/>';

此功能与以下内容相呼应:

If - 2014-10-18
If - 2014-10-19
Else - 2014-10-20

但今天$的回声(代码中的最后一行)是

Today: 2014-10-19

那么,怎么了?函数中的最后一个$date是"2014-10-20",该值将返回到$today,但$today显示不同的值。知道吗?

正如kojiro在评论中指出的那样,您没有将内部调用的返回值分配给todayDate()。要改变这一点,请更换这一行

todayDate($date);

带有

$date = todayDate($date);

最新更新