当前位置:编程学习 > php >>

PHP_递归函数时return的Bug

最近在用PHP写一些设计模式的小例子,有大量的设计模式都会递归调用对象或者函数。有的时候需要返回处理状态,就会用到return。在JAVA中 只要在函数内部return就可以得到最后的结果。而在PHP中必须要在掉过递归函数的时候加上return才能正常使用。

举个例子

 
01
<?php
02
/**
03
*这样的写法在调用时,当$i < 3时需要递归重新调用函数。如果是在JAVA中,就可以返回$i的值,而PHP就不能。
04
*/
05
function TestReturn($i){
06
    if($i < 3)
07
    {
08
        $i++;
09
        TestReturn($i);
10
    }
11
    return $i;
12
}
13
 
14
/**
15
*在PHP中,必须要在递归调用函数时加上return
16
*/
17
function TestReturn($i){
18
    if($i < 3)
19
    {
20
        $i++;
21
        return TestReturn($i);
22
    }
23
    return $i;
24
}
25
 
26
?>


作者:四云麒麟
补充:Web开发 , php ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,