Forum Webscript.Ru

Программирование => PHP => Тема начата: Dex от 12 Августа 2005, 18:38:33

Название: Помогите передать данные из функции!
Отправлено: Dex от 12 Августа 2005, 18:38:33
Знания пхп мои поверхностны и возникла такая проблема которую никак не могу решить...

Есть небольшая функция:
function Identify_query_id()
{
global $conn,$part_url;
$sql = "SELECT * FROM cid_content WHERE query_id = \'$part_url[0]\' LIMIT 1";
$result = mysql_query($sql);
$i="0"; // Создаем массив чтобы данные из запроса были доступны вне while list
while(list($title) = mysql_fetch_array($result)) {
$show_title[$i] = $title;
$i++;
echo $show_title[0];
}
echo $show_title[0];
return($show_title[0]);
}
 


Все работает! При вызове самой функции 2 раза echo выводит $show_title[0] это для проверки надо...

...но как я понимаю зта конструкция return($show_title[0]); должна делать доступной значение переменной вне функции, но сразу же после кода не выводится значение $show_title[0];...

Спасибо за помощь, сорри если сумбурно все изложил
Название: Помогите передать данные из функции!
Отправлено: y4an от 12 Августа 2005, 19:28:24
возможно что надо
Название: Помогите передать данные из функции!
Отправлено: Dex от 15 Августа 2005, 10:25:40
Хм-м, да, это сработало, но как я понимаю, чтобы получить переменную надо выполнить функцию и так каждый раз, мне бы хотелось, чтобы выполнив один раз функцию, можно было брать значение $show_title[0].

И как быть если надо несколько переменных вытащить из функции?
Название: Помогите передать данные из функции!
Отправлено: ThE0ReTiC от 15 Августа 2005, 10:32:24
Dex
вытащить массив, например
Название: Помогите передать данные из функции!
Отправлено: Dex от 15 Августа 2005, 10:45:14
ThE0ReTiC
Но как?

Функция которая что-то делает()
{
...
return($var1,$var2);
}

но после выполнения echo $var1[0]; не работает...
Название: Помогите передать данные из функции!
Отправлено: Dex от 15 Августа 2005, 10:47:58
Можно просто пример рабочий?
Название: Помогите передать данные из функции!
Отправлено: Меняздесьдавнонет от 15 Августа 2005, 11:04:54
Цитировать
Dex:
я понимаю зта конструкция return($show_title[0]); должна делать доступной значение переменной вне функции

это заблуждение.
эта конструкция заставляет функцию ВЕРНУТЬ значение.

Цитировать
Dex:
Но как?

у тебя есть этот массив?
Если есть - его и возвращай.
если нету - то тогда тебе и не нужно массив возвращать, чудик
Название: Помогите передать данные из функции!
Отправлено: Dex от 15 Августа 2005, 11:11:04
Да. Можно на примере плз или просто схематично... на личности не переходим
Название: Помогите передать данные из функции!
Отправлено: Меняздесьдавнонет от 15 Августа 2005, 11:16:13
ЧТО ТЕБЕ на примере?
как вернуть массив? он у тебя есть?
Название: Помогите передать данные из функции!
Отправлено: Dex от 15 Августа 2005, 11:22:38
Выполняется функция в самом начале. (Достаются значения из бд.)
Не могу дальше в коде использовать эти значения, (простое echo $var_form_mysql) ничего не возвращает.

Я непонятно объясняю что мне надо? Перефразировать как-то надо?

В начале сделал поправку на мои знания, прошу это учесть, спасибо.
Название: Помогите передать данные из функции!
Отправлено: Меняздесьдавнонет от 15 Августа 2005, 11:27:30
окей, массив тебе уже не нужен.уже хорошо.

Цитировать
Dex:
$result = mysql_query($sql);

скажи, почему ты пишешь вот так
а не просто
mysql_query($sql); ?
Название: Помогите передать данные из функции!
Отправлено: Меняздесьдавнонет от 15 Августа 2005, 11:28:31
а потом "простое echo $result" ,а?
Название: Помогите передать данные из функции!
Отправлено: Dex от 15 Августа 2005, 11:40:41
Цитировать
скажи, почему ты пишешь вот так
а не просто
mysql_query($sql); ?


Но это ведь не суть вопроса? Просто этой конструкцией привык доставать значения из mysql.

Весь вопрос не как в конкретной функции вывести значения и работать с ними, это не вызывает проблем. Но надо в других местах кода использовать их, при этом воспользовавшись всего одним вызовом данной функции.
Название: Помогите передать данные из функции!
Отправлено: Меняздесьдавнонет от 15 Августа 2005, 11:45:11
Цитировать
Dex:
Но это ведь не суть вопроса?

ты ошибаешься
это суть вопроса.
Цитировать
Dex:
Просто этой конструкцией привык доставать значения из mysql.

а у тебя есть другие варианты?
Название: Помогите передать данные из функции!
Отправлено: Меняздесьдавнонет от 15 Августа 2005, 11:45:40
впрочем, если ты привык делать так - то почему не делаешь?
Название: Помогите передать данные из функции!
Отправлено: Dex от 15 Августа 2005, 11:57:32
RomikChef

Давай от кода отойдем тогда. Есть:

функция() {  
Достаем значение из бд;
Получаем его;
$show_title; // вот переменная
}

Выполняем данную функцию один раз. Далее разные куски кода и как в них использовать $show_title и не вызывая при этом повторно функция()?
Название: Помогите передать данные из функции!
Отправлено: Меняздесьдавнонет от 15 Августа 2005, 12:02:47
http://www.php.net/manual/ru/functions.returning-values.php