Бесконечный петлю в Foreach на простом манереPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Бесконечный петлю в Foreach на простом манере

Сообщение Anonymous »

Я сталкиваюсь с конкретной проблемой, для которой я не нашел много ссылок. Я нашел атрибуты SimplexMleLement и Foreach, которые описывают ту же проблему, но она не была ответа в течение года, и не имеет никакого ответа. Excel2007.php , доступен по адресу https://github.com/phpoffice/phpexcel/b ... el2007.php, из которых несколько строк извлечены здесь (я добавил var_dump и echo):

Код: Выделить всё

foreach ( $colourScheme as $k => $xmlColour ) {
var_dump ( $xmlColour ); echo 'NEWVAR';
$themePos = array_search ( $k, $themeOrderArray );
if (! $themePos) {
$themePos = $themeOrderAdditional ++;
}
if (isset ( $xmlColour->sysClr )) {
$xmlColourData = $xmlColour->sysClr->attributes ();
$themeColours [$themePos] = $xmlColourData ['lastClr'];
} elseif (isset ( $xmlColour->srgbClr )) {
$xmlColourData = $xmlColour->srgbClr->attributes ();
$themeColours [$themePos] = $xmlColourData ['val'];
}
}
$ colourscheme var - simplexmlelement , который содержит 12 simplexmlements , и все они имеют simplexmlelement 0, кроме одного, у которого есть «srgbcl» . on 2 iterations of the loop, and then does not change furthermore (and there are 12 occurrences in $colorScheme), thus looping infinitely (or at least until the time limit, and I tried with a very long value).
If I comment the following lines of my php.ini (I'm working with a 64b version of wampServer, on Windows 7, starting Отладка с значком отладки Eclisepdt в качестве веб -приложения), бесконечный цикл, как представляется, не происходит, и файл, кажется, хорошо преобразован. < /p>

Код: Выделить всё

; XDEBUG Extension

zend_extension = "D:/path/to/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
;
[xdebug]
xdebug.remote_enable = on
xdebug.remote_host = "localhost"
xdebug.remote_port = 9000
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = req
xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "D:/path/to/tmp/tmp"
xdebug.show_local_vars = on
xdebug.collect_params = on
< /code>
Изменить: немного больше информации.
Все, кажется, работает нормально (php.ini
прокомментировано или нет), пока я не добавлю точку останова в Eclipse и не попрошу отладки моей страницы. Как только я добавлю точку останова, происходит бесконечное петлей, и меня останавливают максимальным временем выполнения или максимальным ограничением памяти. Я проверил его с небольшим файлом (20 КБ), и он, кажется, работает, отлаживание или нет, и более крупным (750 КБ), и это терпит неудачу.
во время шага я определенно вижу, что мой ключ $ k < /code> не обновляется после 2 -й итерации. Отлично!
Большое спасибо за ваше время и за помощь!

Подробнее здесь: https://stackoverflow.com/questions/338 ... xmlelement
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»