день добрый.долго ломал голову,гуглил,но вразумительного ответа так и не увидел.
имеем ф-цию:
| Код | static function get_parent_kat($this_kat,$kat_array) { $list_result = db_query("SELECT id,name FROM ***** WHERE id=(SELECT p_id FROM ***** WHERE id=".$this_kat.")"); if (mysql_num_rows($list_result) > 0) { echo "pfff"; $list_row=mysql_fetch_array($list_result); echo $list_row['id']; $kat_array[]=array('id'=>$list_row['id'],'name'=>$list_row['name']); centr_page::get_parent_kat($list_row['id'],$kat_array); } else { $reversed=array_reverse($kat_array); /* $send_back=''; for ($y=0;$y<count($reversed);$y++) { $send_back.="<a href='/goods/".$reversed[$y]['id']."' class='def_link_list' style='text-decoration:none;font-weight:bold;'>".$reversed[$y]['name']."</a>→"; } $send_back=substr($send_back,0,strlen($send_back)-7); */ echo "блять!"; return "345"; echo "ояебу!"; } }
|
всё это вызываем так:
| Код | $kat_array=array(); $kat_array[]=array('id'=>$kategory,'name'=>$place_row['n1']); $its=centr_page::get_parent_kat($kategory,$kat_array); echo $its;
|
в данном случае получаем на вывод потому как в первый вызов $kategory=25,а для него p_id=5,но не выводит "345"!!! если убрать мои гневные "точки проверки" ,и написать нормально
| Код | $send_back=substr($send_back,0,strlen($send_back)-7); return $send_back;
|
то вообще ничего не выводит,а если написать
| Код | $send_back=substr($send_back,0,strlen($send_back)-7); echo $send_back;
|
то выведет код как и положено,но в месте вызова ф-ции,что логично.мне-же надо в определенном месте показать результат выполнения ф-ции,что опять-таки логично,согласитесь? итак,резюмирую:в рекурсивной ф-ции не возвращает значение по return но возвращает по echo.где я накосячил?
Добавлено @ 02:40 всё,я допер.всё элементарное-простынь)))) |