Почему не возвращает значение

  • Автор темы BrainWork
  • Дата начала

BrainWork

Guest
Почему не возвращает значение

Есть функция:
PHP:
function show_old() { 
      $old_mess = "./message/message.dat"; 
      $old = fopen($old_mess,"r") or die ("Файл $old_mess не открывается"); 
      while (!feof($old)) { 
         $title = fgets($old,512); 
         $nick  = fgets($old,512); 
         $mails = fgets($old,512); 
         $dates = fgets($old,512); 
         $msg   = fgets($old,512); 
         $url   = fgets($old,512); 
         $ends  = fgets($old,512); 
         $counts++; 
         if (!$title=="" && !$nick=="" && !$mails=="" && !$dates=="" && !$msg=="" && !$url=="") { 
           echo "<br><table width=500 bgcolor=#ffffff align=center style=\"border: 1px d0d0d0 solid\"> 
<tr><td align=center style=\"border: 1px d0d0d0\"><b>:: $title ::</b></td></tr> 
<tr><td style=\"border: 1px d0d0d0 solid\">&#192;&#226;&#242;&#238;&#240;: <b>$nick</b>|e-mail: <b>$mails</b><br>              $dates</td></tr><tr><td height=80 style=\"border: 1px d0d0d0\"><b>Сообщение:</b> $msg</td></tr> 
<tr><td align=center style=\"border: 1px d0d0d0 solid\">$url</table><br>"; 
                                                                                                } 
         else {} 
                          } 
         fclose($old); 
         return $counts;             
                     }
Почему return $counts ничиго не возвращает на выходе???
 

Кром

Новичок
>Почему return $counts ничиго не возвращает на выходе???

А почему она должна что то возвращать?
 

netdog

net @
вероятно потому, что не было ни одной итерации цикла while.

п.с. и определи $counts перед циклом, ибо будет notice
 

ReMaRk

Новичок
У тебя $counts нигде не определен.
Вставь строчку вначале функции: $counts = 0;
 

BrainWork

Guest
если я е вывожу внутри функции он пишет, так что цикл проходит, а вот вытащить ее...

-~{}~ 05.07.05 22:04:

но ведь код
PHP:
$count++;
echo $count;
выводит переменную, хотя я ее не определяю
 

BrainWork

Guest
NetDog
п.с. и определи $counts перед циклом, ибо будет notice
определил все равно не вытаскивает
 

netdog

net @
после функции:

echo $count;
разберись что такое функция и как она возвращает. бегом ман, учебники и т.п.

funcion Func() {
global $count
...
}

echo $count;


funcion Func() {
...
return $count
}
echo Func();

разницу чувствуешь?
 

BrainWork

Guest
Прочитал по книге Самоучитель PHP 5, не понял объясните
 

BrainWork

Guest
Для передачи рез-та ф-и в основную программу используется инструкция return. return может возвращать все что угодно в том числе и массивы
 

netdog

net @
повторяю еще раз, иди читай что такое функции и как, _КУДА_ она возвращает результат, и по ссылке про глобальные переменные пройдись.
 
Сверху