php 递归到空如何处理,PHP递归函数返回NULL - Carbon PHP库

我试图用Carbon PHP DateTime库的帮助编写一个递归函数。但是,如果我运行该函数返回值为NULL,即使它之前我回声它,它是正确回显。PHP递归函数返回NULL - Carbon PHP库

递归函数搜索下一个可用的工作日,因此周六和周日有6和0。我现在只是测试它的功能。

每个帮助都会有所体会。

谢谢。

$today = Carbon::now($timezone);

$variable = check_next_day($today);

var_dump($variable); //NULL

function check_next_day($giventdate){

//var_dump ($giventdate->dayOfWeek);

/*echo "
Holnapi nap:" . $giventdate->addDay();

echo "
Holnapi nap erteke:" . $giventdate->dayOfWeek; */

//echo gettype($giventdate->dayOfWeek);

if (($giventdate->dayOfWeek == 1) || ($giventdate->dayOfWeek == 2)){

//echo ("
IN loop:". $giventdate);

check_next_day($giventdate->addDay());

} else {

//echo "ELSE VAN?". $giventdate; // This returns the correct value 2017-02-08 19:44:46

return $giventdate; // This returns NULL

}

//print_r (check_next_day($giventdate->addDay()));

//echo "WTF";

}

+1

,你**不返回任何**。这不是很递归... –

+0

我试过这样,但在这种情况下,NULL也返回。并且在giventdate中有一个错误的值,因为如果$ giventdate-> dayOfWeek是1,它将运行if语句而不是else。 (!($ giventdate->一周中的某天= 1)||($ giventdate->一周中的某天= 2)!) 如果{ \t \t回波( “

IN环:” $ giventdate); \t \t return $ giventdate; \t \t \t }否则{ \t \t check_next_day($ giventdate-> addDay()); \t} –

+1

在递归方法中,每个可能的执行分支必须最终返回* something *。除非PHP默认并返回null(这可以解释错误),否则我会期望这会引发错误。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值