Forum Webscript.Ru
Программирование => PHP => Тема начата: Kita от 25 Сентября 2003, 20:08:07
-
Привет.
Может кто поможет, как получить значение из функции. Делаю так:
$menu="";
$f=menu($llevel, $first_menu, $a, $maxlev, $menu);
echo "$f";
function menu($level, $id_menu, $a, $maxlev, $menu)
{
$sql1_1="SELECT * FROM menu WHERE level=$level AND id_menu=$id_menu ORDER BY position";
$sql1_2=mysql_query($sql1_1);
$width=$level*10;
while ($sql1_3=mysql_fetch_array($sql1_2))
{
$menu=$menu."";
$id_menu=$sql1_3[\'id\'];
if ( (!empty($a[$level])) and ($a[$level]==$id_menu) and ($level<=$maxlev) )
{
$f=menu($level+1, $id_menu, $a, $maxlev, $menu);
}
}
$level++;
return $menu;
}
Но возвращает оно мне только первое значение, а не то значение, которое в результате работы всей функциии.
-
1. помести свой код в [ php] твой код [ /php]
2. в чем смысл строк:
$level++;
и
if ( (!empty($a[$level])) and ($a[$level]==$id_menu) and ($level<=$maxlev) )
{
$f=menu($level+1, $id_menu, $a, $maxlev, $menu);
}
насчет последнего кода я не понял, почему $f нигде не используется ?
-
$f используется потом
проблема вот в чем:
при использовании return функция прекращает выполнение. а в ней задано, что она далжна несколько раз выполнить саму себя...
как обойти проблему - не знаю...
$level - уровень меню
-
Kita
ты знаком с понятием "область видимости переменных" ?
-
http://phpclub.net/manrus/lang/variables.scope.html
-
Ок, спасибо... Об этом я как-то не подумала
-
Я для позора могу сказать одно что я вообще неразобрался с этими возвратами функции, и их неиспользую взагали. В книгах так умно пишут всегда что и понячть неполучается. Может вы мне на нормальном языке скажите что там папа в маму и вообще как это все происходит с возвратами функций.
Спасибо
-
tarya
возможно, если ты четко сформулируешь свой вопрос, то кто-нибудь и ответит.