使用递归函数示例:
function abc($n) { if ($n>2) { abc(--$n); } echo \'$n=\'.$n.\'<br>\'; } abc(4);
注意:当abc($n--),先传值再减减,那么每次调用函数$n值都是4,这是无限递归。
内存解释函数调用流程:PHP在执行遇到函数时,就会开辟一个新栈
|
内存 入口栈 abc(4) |
|
=》
第三次返回 《= |
|
$n=4 if(){ abc(--$n) } echo \'$n=\'.$n.\'<br>\'; |
|
=》
第二次返回 《= |
|
$n=3 if(){ abc(--$n) } echo \'$n=\'.$n.\'<br>\'; |
|
=》
第一次返回 《= |
|
$n=2 if(){ } echo \'$n=\'.$n.\'<br>\'; |
结果:
第一次返回结果:$n=2
第二次返回结果:$n=2
第三次返回结果:$n=3