Forum Webscript.Ru

Программирование => PHP => Тема начата: Kita от 25 Сентября 2003, 20:08:07

Название: Возврат из функции
Отправлено: 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."
 $sql1_3[name]
";
        $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;

     }


Но возвращает оно мне только первое значение, а не то значение, которое в результате работы всей функциии.
Название: Возврат из функции
Отправлено: Макс от 25 Сентября 2003, 20:19:25
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 нигде не используется ?
Название: Возврат из функции
Отправлено: Kita от 25 Сентября 2003, 20:39:13
$f используется потом
проблема вот в чем:

при использовании return функция прекращает выполнение. а в ней задано, что она далжна несколько раз выполнить саму себя...

как обойти проблему - не знаю...

$level - уровень меню
Название: Возврат из функции
Отправлено: Макс от 25 Сентября 2003, 21:53:18
Kita
ты знаком с понятием "область видимости переменных" ?
Название: Возврат из функции
Отправлено: Меняздесьдавнонет от 26 Сентября 2003, 13:22:09
http://phpclub.net/manrus/lang/variables.scope.html
Название: Возврат из функции
Отправлено: Kita от 26 Сентября 2003, 13:35:21
Ок, спасибо... Об этом я как-то не подумала
Название: Возврат из функции
Отправлено: tarya от 26 Сентября 2003, 23:52:33
Я для позора могу сказать одно что я вообще неразобрался с этими возвратами функции, и их неиспользую взагали. В книгах так умно пишут всегда что и понячть неполучается. Может вы мне на нормальном языке скажите что там папа в маму и вообще как это все происходит с возвратами функций.


Спасибо
Название: Возврат из функции
Отправлено: Макс от 27 Сентября 2003, 12:24:01
tarya
возможно, если ты четко сформулируешь свой вопрос, то кто-нибудь и ответит.