Не правильная работа рекурсии.

mit

Новичок
Не правильная работа рекурсии.

Вылаживаю код.
Код:
function Tree($ID) {
   global $arrTree;
   echo "<ul>";
   $res = CIBlockElement::GetList(array("ACTIVE_FROM"=>"ASC"), array("IBLOCK_ID"=>53,"PROPERTY_PID"=>$ID));
   while($ob = $res->GetNextElement()):
      $arFields = $ob->GetFields();
      $arProps = $ob->GetProperties();
      $arrTree[$arFields["ID"]] = $arProps["pid"]["VALUE"];
      echo "<li>".$arFields["ID"];
      Tree($arFields["ID"]);
   endwhile;
   echo "</ul>";
}
При выполнении данного кода на домашнем сервере (Apache 1.2, PHP4.4) вылетает ошибка Apache
Код:
Apache.exe
----------------------
Исключение unknown software exception (0xc00000fd) в приложении по адресу 0x7c90eddc.
а на хостнге (Apache 2.0, PHP 5) все работает нормально. Собственно вопрос - в чем может быть проблема? Почему вылетает сервак? Может кто сталкивался с похожей ситуацией? Заранее спасибо.
 

Vallar_ultra

Любитель выпить :)
Если дохнет apache - то это уже проблема внутри вызова функций на уровне системы....
Попробуй написать сто-то типа такого и посмотреть: работает или нет
PHP:
$stop = 3; // менять пока не начнёт дохнуть!
$iteration = 0;
function Tree($ID) {
   global $arrTree, $stop, $iteration;
   if($iteration>$stop) return ;
   $iteration ++;
   echo "<ul>";
   $res = CIBlockElement::GetList(array("ACTIVE_FROM"=>"ASC"), array("IBLOCK_ID"=>53,"PROPERTY_PID"=>$ID));
   while($ob = $res->GetNextElement()){
      $arFields = $ob->GetFields();
      $arProps = $ob->GetProperties();
      $arrTree[$arFields["ID"]] = $arProps["pid"]["VALUE"];
      echo "<li>".$arFields["ID"];
      Tree($arFields["ID"]);
   }
   echo "</ul>";
}
если пашет - о проблема в том что ты подсовываешь битриксу и что он соответственно вызывает уже внутри себя... если мрёт сразу на нулевой итерации - то уже проблемы на уровне системы.

СМЕРТЬ БИТРИКСУ!!! :) Шутка , Можно просто не пользовать :))
 
Сверху