【问题标题】:What scenario causes a php foreach loop to terminate?什么情况会导致 php foreach 循环终止?
【发布时间】:2016-07-26 10:48:19
【问题描述】:

我有一个包含近 11000 个值的数组。

array=(1,2,3..............................., 11000)

当我尝试使用 foreach 迭代数组时,它会在第 9749 个项目上终止执行并且保持未执行。请让我知道停止循环内执行的问题是什么?

注意: 我没有在循环内使用任何中断或死亡。

【问题讨论】:

  • 可能你的 max_execution_time 设置为下限?
  • 是否显示任何错误?
  • 请贴出循环代码。显然我们无法为您提供其他帮助!
  • 或者它可能到达它的memory_limit。启用error reporting,它会告诉你为什么它会过早停止。
  • 只是一个普通的foreach循环不会显示这个问题:eval.in/612085

标签: php arrays foreach


【解决方案1】:

首先,您应该enable displaying PHP errors,因为 PHP 会告诉您问题所在。执行暂停的 3 个最常见原因是:

  • max_execution_time - 设置脚本在被解析器终止之前允许运行的最长时间(默认:30 秒)。

  • memory_limit - 设置允许脚本分配的最大内存量(以字节为单位)。如果达到此限制,执行将停止。

  • xdebug.max_nesting_level - 如果您启用了 xdebug,并且正在使用递归函数,当您达到嵌套函数限制(默认值:256)时,执行将停止。

【讨论】:

  • 实际上我增加了除 xdebug.it 之外的所有值。它运行 2000 个值数组。对于那些页面加载正常。但是对于 10000 它显示空白页。即使我添加了代码错误启用代码,也没有任何错误消息。
  • 您确定启用了错误吗?写一些不好的代码,看看是否出现错误。或者你可以直接查看php错误日志文件。
  • @beardedlinuxgeek 是的,我遇到了内存耗尽错误。
猜你喜欢
  • 1970-01-01
  • 2013-10-17
  • 2018-10-02
  • 2011-12-01
  • 1970-01-01
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
相关资源
最近更新 更多