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