我的脚本在foreach循环后停止

时间:2009-05-08 13:26:59

标签: php foreach

我的剧本很奇怪。在foreach循环之后,脚本停止。我没有任何错误,任何来自Apache的警告或通知。 这是代码:

foreach($clientFact as $line)
{
    $cliTemp1[] = $line["idcliente"];
    echo "qwerty";
}
echo "123";

如果我在循环中添加“echo(qwerty”),它将显示“qwerty”,但是,在循环结束后它将不会执行任何操作。

我错过了什么吗?!

由于

3 个答案:

答案 0 :(得分:9)

Apache不会因为PHP错误而返回错误。添加

error_reporting(E_ALL | E_STRICT);
在页面顶部的

是一个非常好的主意,因此您可以看到发生的每个错误。它也可能是你的错误处理程序没有显示错误而只是结束脚本。

如果您的错误处理程序出现问题,请添加

restore_error_handler();
在error_reporting函数之前

编辑:阅读有关数组索引的评论。如果它每次都停在特定的索引上,那肯定听起来就像在PHP中达到了内存限制。

您可以使用:

ini_set('memory_limit', '100M');

将内存限制更改为100megs。不推荐但是如果它有效,那就是内存不足的问题。尝试重构您的程序,以便使用更少的内存

答案 1 :(得分:4)

上面的语法看起来很好,所以在这里完整的黑暗镜头 - $clientFact数组有多大? $cliTemp1数组是否可能变得如此之大以至于绊倒了内存限制?

也许而不是回应“qwerty”,在每次迭代时回显$line["idcliente"]的内容,以确保您成功浏览$clientFact中的所有元素。

答案 2 :(得分:1)

猜测,你在循环内部因错误而死,因为你的$line之一不是你期望的数组,并且错误被隐藏了。尝试在循环之前设置error_reporting(E_ALL),并可能ini_set('display_errors', true)