我的剧本表现得很奇怪。在 foreach 循环之后,脚本停止。我没有来自 Apache 的任何错误、警告或通知。这是代码:
foreach($clientFact as $line)
{
$cliTemp1[] = $line["idcliente"];
echo "qwerty";
}
echo "123";
如果我在循环中添加一个“echo(qwerty”)”,它将显示“qwerty”,但是在循环结束后它不会做任何事情。
我错过了什么吗?!
谢谢
Apache 不会将错误作为 PHP 错误返回。添加
error_reporting(E_ALL | E_STRICT);
在您的页面顶部是一个非常好的主意,这样您就可以看到发生的每个错误。也可能是您的错误处理程序没有显示错误而只是结束脚本。
如果您的错误处理程序有问题,请添加
restore_error_handler();
在 error_reporting 函数之前
编辑:阅读您对数组索引的评论。如果每次都停在特定索引处,这听起来肯定像是在 PHP 中达到了内存限制。
你可以使用:
ini_set('memory_limit', '100M');
将您的内存限制更改为 100 兆。不推荐,但如果它有效,它的内存不足的问题。尝试重构您的程序,使其使用更少的内存
$clientFact
上面的语法看起来不错,所以在这里在黑暗中完整拍摄 -数组有多大?数组是否有可能$cliTemp1
变得如此之大以至于超出了内存限制?
也许不是回显“qwerty”,而是回显$line["idcliente"]
每次迭代的内容,以确保您成功通过$clientFact
.
猜测一下,您正在因循环内的错误而死,因为您的一个$line
s 不是您期望的数组,并且错误被隐藏了。尝试error_reporting(E_ALL)
在循环之前设置,并且可能ini_set('display_errors', true)
.