English 中文(简体)
什么通常导致PHP遭遇堆栈溢出?
原标题:
  • 时间:2009-01-21 20:39:54
  •  标签:

我正在运行一些PHP网站的Windows IIS服务器上。我们将一个功能正常的PHP网站迁移到了我们的服务器,但是提交其中一个表单后出现了以下错误:

PHP has encountered a Stack overflow

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

任何帮助都将不胜感激。

问题回答

递归过深?

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

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

你提到会话可能是原因;你是否在会话中存储复杂的数据结构?会话在请求之间序列化和反序列化,如果你在其中放置了过多的东西,可能会导致一些问题(不确定什么程度算是过多)。也许你可以减少一些呢?

[离题]

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




相关问题
热门标签