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
posted @ 2020-09-23 14:59  人可永真  阅读(204)  评论(0编辑  收藏  举报