【问题标题】:What generally causes PHP to encounter a stack overflow?什么通常会导致 PHP 遇到堆栈溢出?
【发布时间】:2010-10-02 18:51:56
【问题描述】:

我在为一些 php 站点提供服务的 Windows IIS 服务器上。我们已将一个正常工作的 PHP 站点移到我们的服务器上,但提交其中一个表单返回:

PHP has encountered a Stack overflow

在注释掉 MYSQL INSERT 并为表单处理分配 SESSION 变量时,但是这些是提交表单的重要部分。

任何帮助将不胜感激。

【问题讨论】:

  • 当您在 PHP 中编写堆栈溢出克隆时 :)

标签: php windows iis memory


【解决方案1】:

递归过多?

【讨论】:

【解决方案2】:

对我来说这通常是一个无限循环(包括无限递归)

【讨论】:

    【解决方案3】:

    您使用的是哪个版本的 php?如果我没记错的话,在某些旧版本中,无限(或非常深)递归会导致堆栈溢出。今天您会收到更具体的错误消息(“已达到 '100' 的最大函数嵌套级别,正在中止!”)。

    您提到会话可能是一个原因;您是否在会话中存储复杂的数据结构?会话在请求之间是序列化和非序列化的,如果你在其中放入太多东西可能会导致一些问题(虽然不确定多少是太多)。也许你可以减少它?

    【讨论】:

      【解决方案4】:

      [题外话]

      $stackoverflow = file_get_contents('http://stackoverflow.com/tags/php');
      // voila, php encountered stackoverflow ^-^
      

      【讨论】:

        猜你喜欢
        • 2011-01-13
        • 1970-01-01
        • 2014-12-20
        • 2010-09-11
        • 2018-07-01
        • 2016-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多