2

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

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

如果我在循环中添加一个“echo(qwerty”)”,它将显示“qwerty”,但是在循环结束后它不会做任何事情。

我错过了什么吗?!

谢谢

4

3 回答 3

9

Apache 不会将错误作为 PHP 错误返回。添加

error_reporting(E_ALL | E_STRICT);

在您的页面顶部是一个非常好的主意,这样您就可以看到发生的每个错误。也可能是您的错误处理程序没有显示错误而只是结束脚本。

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

restore_error_handler();

在 error_reporting 函数之前

编辑:阅读您对数组索引的评论。如果每次都停在特定索引处,这听起来肯定像是在 PHP 中达到了内存限制。

你可以使用:

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

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

于 2009-05-08T13:48:46.713 回答
4

$clientFact上面的语法看起来不错,所以在这里在黑暗中完整拍摄 -数组有多大?数组是否有可能$cliTemp1变得如此之大以至于超出了内存限制?

也许不是回显“qwerty”,而是回显$line["idcliente"]每次迭代的内容,以确保您成功通过$clientFact.

于 2009-05-08T13:31:32.777 回答
1

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

于 2009-05-08T13:32:19.377 回答