Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как возвратить массив значений из функции


Автор: Osmosis_Johnes 23.10.2009, 09:06
Есть код:

Код

<...цикл 
$a[$i]='zxc'; 
$b[$i]='asd'; 
$c[$i]='qwe'; 
...> в цикле присваиваются разные значения переменным 

$k=3; 
for ($j=$k-1;$j>=0;$j--) { 
echo all(&$j); 
} 

function all($j) { 
$a=array(); 
  $ar[0]=$a[$j]; 
  $ar[1]=$b[$j]; 
  $ar[2]=$c[$j]; 
return $ar; 
}


как возвратить потом в текстовом виде значения из массива $ar? на экране выводится array, array...


Автор: bars80080 23.10.2009, 09:21
совершенно не понятно, что кроме ошибки вы из этого кода хотите выжать

Код

echo implode(';', all(&$j)); 

Автор: Ипатьев 23.10.2009, 09:49
Osmosis_Johnes, 
вы, похоже, заблудились в трех соснах.
"вернуть из функции" и "вывести на экран" - это разные вещи.

плюс, даже если вам удастся вывод, то там все равно будет пусто.

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

Автор: Osmosis_Johnes 26.10.2009, 13:55
всё, понял. пусто на экране было, т.к. в функции не были "видны" переменные, их вне ф-ции надо сделать global и тогда с пом. implode всё отлично выводится на экран!

Автор: skyboy 26.10.2009, 14:19
массив выводится при помощи http://php.net/print_r или http://php.net/var_dump.
глобальные переменные сильно усложняют отладку. особенно, если это не некий "глобальный и всюду одинаковый конфиг", а вот такие вот параметры одной функции. Потому гораздо, гораздо рациональнее передавать нужные данные в функцию в виде параметров. Если количество параметров, передаваемых в функцию при вызове, велико настолько, что вызов функции уже нечитаем - можно сгруппировать параметры вызова в те же массивы. Но не переходить на глобальнопеременные костыли.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)