如果是周末,我会显示今天或下一个工作日的日期。函数的工作原理很好,但返回有问题。
$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);