PHP - 用户定义的函数返回致命错误

时间:2016-09-10 09:41:11

标签: php

所以我有这个用户定义的函数:

        function ackermann($n, $m)
        {
            if ($n == 0)
            {
                return 1 + $m;
            }

            if ($m == 0)
            {
                return ackermann($n - 1, 1);
            }

            return ackermann($n - 1, ackermann($n, $m - 1));
        }

        echo ackermann(3, 3);

这应返回值61,但它会返回此致命错误:

  

致命错误:允许的内存大小为134217728字节耗尽(尝试过   在C:\ xampp \ htdocs \ PhpProject1 \ index.php中分配262144个字节)   第316行

这只是我们负责用PHP编写代码的一组程序的一部分,因为我正在学习PHP的入门课程。究竟是什么问题?

2 个答案:

答案 0 :(得分:0)

那是因为PHP无法在分配给它的内存中完成请求。

解决方案是在memory_limit中增加php.ini。 默认情况下应为128M,将其更改为512或1024;

memory_limit = 512M;

如果它仍然耗尽,请尝试分析您的代码并检查它是否未在循环中执行。

答案 1 :(得分:0)

这是因为:

var platform_1 = require("platform");
function tabviewLoaded(args) {
    var tabview = args.object;
    if (platform_1.isAndroid) {
        var tabViewgrid = tabview._grid;
        console.dump(tabViewgrid.removeViewAt(0));
    }
    if (platform_1.isIOS) {
        tabview._ios.tabBar.hidden = true;
    }
}
exports.tabviewLoaded = tabviewLoaded;

你试图在ackermann函数中调用ackermann函数,它试图调用ackerman函数,它调用ackerman函数...

那时它不会工作。

你想达到什么目的?