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

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

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

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

4

1 回答 1

2

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

以下是终止条件的示例:

public static function TestDB($x) {
    if ($x < 10) {
        self::TestDB($x + 1);
    } else {
        echo '>= 10!';
    }
}
于 2013-03-30T16:59:05.860 回答