function jc ($i){
if($i>1){
$s=$i*jc($i-1);
}else{
$s=$i;
}
echo $s."  ";
return $s;
}
echo "<br>".jc(3);
------------------------------------------------------------------------
1. $i = 3 ; $i > 1 ; $s = 3 * jc(3-1)
2. $i = 2 ; $i > 1 ; $s = 2 * jc(2-1)
3. $i = 1 ; $i !>1; $s = $i $s =1;
此时echo出 $s =1;
然后跳转到上一层函数把此时函数的值返回去既
$s = 2 * return 返回值,既 $s = 2 * 1
此时 echo出 $s = 2;
然后在跳转到上面一层函数,把return值返回去,既
$s = 3 * return 返回值,既 $s = 3 * 2
此时 echo出 $s = 6;
最后将return值返回到函数外面既交给echo处理
此时 echo jc(3) = echo 6
最终输出:
1 2 6
6
转载于:https://blog.51cto.com/unixlike/728490