php 函数阶乘理解

<?php

//函数阶乘  函数调用自身,函数在执行的时候每次都会开辟一个空间,如

/**
 * $a =3的话,首先判断  3>1 为真   $r=3*demo(3-1)  开辟一个空间调用自身。
 * 这时候$a=2  在判断 2>1为真  $r=3*2*demo(2-1),在开辟一个控件调用自身
 * 这时候$a=1 在判断 1>1 为假  直接返回$r=1 
 * 在吧所有的开辟空间返回的结果放到一起  3*2*1=6
 * 
 */

function demo($a) {
  if ($a > 1) {
    $r = $a * demo($a - 1);
  } else {
    $r = $a;
  }
  return $r;
}
 echo demo(3);


?>