我试图用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 -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(这可以解释错误),否则我会期望这会引发错误。 –