【问题标题】:Fatal error: Allowed memory size of 134217728 bytes exhausted致命错误:允许的内存大小为 134217728 字节已用尽
【发布时间】:2011-02-23 15:59:11
【问题描述】:

我的 php 代码使用递归有问题:

<?php

solveTowers(5, "A", "B", "C");

 function solveTowers($count, $src, $dest, $spare)
    {
        if (count == 1)
        {
          echo "Move a disk from ".$src." to ".$dest ;
        }
        else
        {
            solveTowers($count - 1, $src, $spare, $dest);
            solveTowers(1, $src, $dest, $spare);
            solveTowers($count - 1, $spare, $dest, $src);
        }
    }

?>

但它没有运行!

出现此错误:

致命错误:允许的内存大小为 134217728 字节已用尽(尝试分配 261904 字节)在 C:\xampp\htdocs\cap492\towers.php 第 13 行

第 13 行是 else 语句中对函数的第一次调用

你能帮帮我吗?!

【问题讨论】:

  • 你有一个堆栈溢出!
  • 如果您的问题解决了,请勾选正确答案,在每个答案旁边显示给OP。

标签: php recursion


【解决方案1】:

if ($count == 1) 而不是 if (count == 1)

【讨论】:

  • 另外注意:确保错误报告级别也设置为报告通知。 count 最初被视为一个常量,然后 PHP 发现它不存在,所以它非常有帮助地假设您的意思是字符串“count”。这个假设会引起一个可能已经注意到的通知。
  • 你是对的 :\ 发生这种情况是因为我将代码从 Java 翻译成 PHP 语言,现在它可以工作了,非常感谢
猜你喜欢
  • 2016-04-13
  • 2015-07-06
  • 2016-12-11
  • 2017-01-05
  • 2017-11-15
  • 2016-07-12
  • 2015-11-16
  • 2012-08-29
  • 1970-01-01
相关资源
最近更新 更多