Lithium366
Новичок
область видимости и рекурсии
Задача: записать в строковую переменную результат выполнения рекурсивно-вызываемой функции.
Имеется следующий код:
однако на выходе:
var TREE_ITEMS = [
];
Если не записывать в переменную, а делать везде echo то все пучком, т.е. сам код работает нормально
Задача: записать в строковую переменную результат выполнения рекурсивно-вызываемой функции.
Имеется следующий код:
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 то все пучком, т.е. сам код работает нормально