有人可以向我解释此代码吗?我不明白为什么会输出21。
<?php
function math($t){
if($t==0)
return 0;
return $t+ math($t-1);
}
echo math(6);
?>
它将回显21。我不知道它是如何得到这个结果的。
答案 0 :(得分:4)
该函数是递归的,它会自行调用直到到达0
,然后添加以前返回的所有值(6,5,4,3,2,1)。
function math($t){
if($t==0)
return 0;
return $t+ math($t-1);
}
echo math(6);
因此,在循环1上,它得到6
,然后得到6-1
= 5
,所以这次math
被5
再次调用,依此类推。看看http://sandbox.onlinephpfunctions.com/code/e228f3b696c5058efee03fa978a09179c1f2ffbb。