Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: на что заменить return чтобы значения пол.функции (весь массив) вернулось но не прерывалось

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: на что заменить return чтобы значения пол.функции (весь массив) вернулось но не прерывалось
bustez
Отправлено: 07 Февраля, 2015 - 19:30:57
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




есть файл в котором храниться инфо. Я вывожу все в строку после
разделяю остается массив, я его перебираю и мне нужно возвратить значение всего массива не просто вывести возвратить значения, т.к. далее это значение присваиваю переменной и т.д. но вернуть значения можно return но оно по док. останавливает и выводит первое значение перебранного массива. Функция list т.к колличество перебираемых будет постоянно менятся (приходят) из формы! как можно вернуть значения чтобы они все вернулись?
PHP:
скопировать код в буфер обмена
  1.  
  2. /*
  3.  *
  4.  *
  5.  *
  6.  *функция вывода файла на экран
  7.  */
  8.         function get_file(){
  9.                 $massGet = file_get_contents('inc/test.txt');//строка
  10.                 $mass = explode("|||", $massGet);//разбит на массивы
  11.                 foreach($mass as $m){//перебираем
  12.                 return $m;
  13.                 }
  14. }
  15. //get_file();//выводим
  16.  
 
 Top
Wooorker
Отправлено: 07 Февраля, 2015 - 19:43:38
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)




bustez пишет:
как можно вернуть значения чтобы они все вернулись?

PHP:
скопировать код в буфер обмена
  1.  
  2.                 $massGet = file_get_contents('inc/test.txt');//строка
  3.                 $mass = explode("|||", $massGet);//разбит на массивы
  4.                 return $mass;
  5. }
  6.  
 
 Top
bustez
Отправлено: 07 Февраля, 2015 - 19:47:08
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




ВЫВОДИТ ТОЛЬКО ПЕРВЫЙ ЭЛЕМЕНТ МАССИВА

вот полный пример
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4. function bnm(){
  5. $ass = array(1,2,3,4,5,6,7,8,9);
  6. foreach($ass as $a){
  7. return $a;
  8. }
  9.  
  10. }
  11. echo bnm();  // ВЫВОДИТ 1 (а нужно 123456789)
  12.  
  13.  

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

(Отредактировано автором: 07 Февраля, 2015 - 19:48:02)

 
 Top
armancho7777777 Супермодератор
Отправлено: 07 Февраля, 2015 - 22:23:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




 
 Top
exlant
Отправлено: 08 Февраля, 2015 - 22:58:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




return возвращает что то и выбрасывает из тела функции, соответственно нужно с начало перебрать массив, если нужно, а потом вывести перебранный массив
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($ass as $a){
  3. $new_array[] = $a
  4. // делаем что то с массивом
  5. }
  6. return $new_array; // возвращаем новый массив
  7.  
  8.  

если под словом вывести имелось ввиду - вывести на экран, то можно и так
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = array(1,2,3,4,5,6,7,8,9);
  3. function print_array($ass)
  4. foreach($ass as $a){
  5. echo $a;
  6.  
  7. }
  8. print_array($array);
  9.  
  10.  

(Отредактировано автором: 08 Февраля, 2015 - 23:04:05)

 
 Top
qtk
Отправлено: 09 Февраля, 2015 - 21:02:40
Post Id


Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




exlant пишет:
return возвращает что то и выбрасывает из тела функции, соответственно нужно с начало перебрать массив, если нужно, а потом вывести перебранный массив
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($ass as $a){
  3. $new_array[] = $a
  4. // делаем что то с массивом
  5. }
  6. return $new_array; // возвращаем новый массив
  7.  
  8.  

если под словом вывести имелось ввиду - вывести на экран, то можно и так
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = array(1,2,3,4,5,6,7,8,9);
  3. function print_array($ass)
  4. foreach($ass as $a){
  5. echo $a;
  6.  
  7. }
  8. print_array($array);
  9.  
  10.  
ваш код возвращает такой же массив как тот который перебирает))))
(Добавление)
PHP:
скопировать код в буфер обмена
  1. function bnm(){
  2. $ass = array(1,2,3,4,5,6,7,8,9);
  3. foreach($ass as $a){
  4. $b .= $a;
  5. }
  6.  return $b;
  7. }
  8. echo bnm();  // ВЫВОДИТ 123456789)

(Отредактировано автором: 09 Февраля, 2015 - 21:06:19)

 
 Top
exlant
Отправлено: 10 Февраля, 2015 - 02:23:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




Цитата:
ваш код возвращает такой же массив как тот который перебирает))))

а я там и не собирался выводить, какой то другой массив)))

просто ТС return вложил в цикл, и хотел так вывести массив, а return выбрасывает из функции, а способов вывода массива(ов) из функции, тьма тьмущая, все зависит от ситуации!

(Отредактировано автором: 10 Февраля, 2015 - 02:29:48)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB