PHP 函数调用原理
使用递归函数示例:
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