Мой скрипт останавливается после цикла foreach - PullRequest
2 голосов
/ 08 мая 2009

Мой сценарий ведет себя странно. После цикла foreach скрипт останавливается. У меня нет ошибок, предупреждений или уведомлений от Apache. Это код:

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

Если я добавлю «echo (qwerty») »внутри цикла, он покажет« qwerty », но сразу после окончания цикла он ничего не сделает.

Я что-то упустил?!

Спасибо

Ответы [ 3 ]

9 голосов
/ 08 мая 2009

Apache не вернет ошибку как ошибку PHP. Добавление

error_reporting(E_ALL | E_STRICT);

в верхней части вашей страницы - очень хорошая идея, чтобы вы могли видеть каждую ошибку, которая происходит. Это также может быть ваш обработчик ошибок, который не отображает ошибку и просто завершает сценарий.

Если это проблема с вашим обработчиком ошибок, добавьте

restore_error_handler();

перед функцией сообщения об ошибке

Редактировать: прочитать ваш комментарий об индексе массива. Это определенно звучит как ограничение памяти, достигаемое в PHP, если каждый раз останавливается на определенном индексе.

Вы можете использовать:

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

, чтобы изменить предел памяти до 100 мегабайт. Не рекомендуется, но если это работает, проблема с нехваткой памяти. Попробуйте реорганизовать вашу программу, чтобы она занимала меньше памяти

4 голосов
/ 08 мая 2009

Синтаксис, представленный выше, выглядит хорошо, так что, как полный снимок в темноте - насколько велик массив $clientFact? Возможно ли, что массив $cliTemp1 становится настолько большим, что отключает ограничение памяти?

Возможно, вместо того, чтобы выводить "qwerty", выводите содержимое $line["idcliente"] на каждой итерации, чтобы убедиться, что вы успешно просматриваете все элементы в $clientFact.

1 голос
/ 08 мая 2009

По-видимому, вы умираете от ошибки внутри цикла, потому что один из ваших $line s не является массивом, как вы ожидаете, и ошибка скрыта. Попробуйте установить error_reporting(E_ALL) перед циклом и, возможно, ini_set('display_errors', true).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...