我的剧本很奇怪。在foreach循环之后,脚本停止。我没有任何错误,任何来自Apache的警告或通知。 这是代码:
foreach($clientFact as $line)
{
$cliTemp1[] = $line["idcliente"];
echo "qwerty";
}
echo "123";
如果我在循环中添加“echo(qwerty”),它将显示“qwerty”,但是,在循环结束后它将不会执行任何操作。
我错过了什么吗?!
由于
答案 0 :(得分:9)
Apache不会因为PHP错误而返回错误。添加
error_reporting(E_ALL | E_STRICT);
在页面顶部的是一个非常好的主意,因此您可以看到发生的每个错误。它也可能是你的错误处理程序没有显示错误而只是结束脚本。
如果您的错误处理程序出现问题,请添加
restore_error_handler();
编辑:阅读有关数组索引的评论。如果它每次都停在特定的索引上,那肯定听起来就像在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)
。