self :: to相同的函数名返回

时间:2013-03-30 16:54:51

标签: php

public static function TestDB(){
    if (self::TestDB()){
        echo "Yes";
    }else{
        echo "No";
    }
}

我正在尝试一种递归的形式,通过相同的函数推送相同的变量是一些失败的行(不要问为什么)当我这样做时,我被提出:

  

致命错误:允许的内存大小为134217728字节耗尽(尝试分配65488字节)

为什么耗尽我的内存限制?

1 个答案:

答案 0 :(得分:2)

您有没有终止条件的递归。递归永远不会完成,填充调用堆栈并使用越来越多的内存。您需要添加终止条件。

以下是终止条件的示例:

public static function TestDB($x) {
    if ($x < 10) {
        self::TestDB($x + 1);
    } else {
        echo '>= 10!';
    }
}