PHP函数与返回语句

时间:2018-08-11 21:50:00

标签: php function

有人可以向我解释此代码吗?我不明白为什么会输出21。

<?php
function math($t){

if($t==0)
return 0;    
return $t+ math($t-1);

}   
 echo math(6);

       ?>

它将回显21。我不知道它是如何得到这个结果的。

1 个答案:

答案 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,所以这次math5再次调用,依此类推。看看http://sandbox.onlinephpfunctions.com/code/e228f3b696c5058efee03fa978a09179c1f2ffbb