область видимости и рекурсии

Lithium366

Новичок
область видимости и рекурсии

Задача: записать в строковую переменную результат выполнения рекурсивно-вызываемой функции.
Имеется следующий код:

PHP:
$ret = "var TREE_ITEMS = [\r\n";
$ret .= catSort(0, 0);
$ret .= "];";


echo "<pre>";
echo $ret;
echo "</pre>";

function catSort($parent = 0, $level = 0) {

  $tmp  =  ""; 

  $result = mysql_query("SELECT id, title, parent FROM category WHERE parent=".$parent." ORDER BY sort DESC, title");

   while ($row = mysql_fetch_assoc($result)) {
       $tmp .= "['".$row['title']."', '".$row['id']."'";
       $r = mysql_query("SELECT id, title, parent FROM category WHERE parent=".$row['id']." LIMIT 1");
       if (is_array(mysql_fetch_assoc($r))) {
         $tmp .= ", \r\n";
         }
       $tmp .= catSort($row['id'], $level+1);
       $tmp .= "],\r\n";
   } 

  return $tmp;

}
однако на выходе:

var TREE_ITEMS = [
];

Если не записывать в переменную, а делать везде echo то все пучком, т.е. сам код работает нормально
 

Lithium366

Новичок

WP

^_^
Lithium366
Значит твой алгоритм хавает память сверх лимита.
 
Сверху