С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 20/05/08 в 10:40 |
к примеру имеем:
Код: |
function bla($var,$array)
{
...
return $result;
}
|
а если мне надо вернуть не одно значение, а несколько?
после ретурна, выполнение кода функции прекращается, если все необходимое засунуть в массив, то опять же придется извлекать каждое его значение, получиться масло маслянное
Оффтопик:
пока писал вопрос, навскидку появилось пару мыслей, но я не думаю что это что то оптимизирует
|
|
x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.
|
0
|
|
|
С нами с 07.09.03
Сообщения: 4115
Рейтинг: 2060
|
Добавлено: 20/05/08 в 10:59 |
передай несколько параметров по ссылке
var $var1;
var $var2;
function bla(&$var1, &$var2)
{
$var1 = 2;
$var2 = 3;
}
если пользуешься класами - используй свойства класса, если нет - используй global $var1; global $var2; если не хочешь по ссылке передавать.
|
|
|
|
С нами с 07.09.03
Сообщения: 4115
Рейтинг: 2060
|
Добавлено: 20/05/08 в 11:03 |
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 20/05/08 в 11:06 |
оценил
|
|
x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.
|
0
|
|
|
С нами с 16.10.02
Сообщения: 1448
Рейтинг: 1000
|
Добавлено: 20/05/08 в 11:07 |
А я не пойму, что значит "придется извлекать каждое его значение"? Просто берешь и используешь:
Код: | function bla($var,$array)
{
...
$result['one'] = 'Hello!';
$result['two'] = 15;
$result['three'] = $newarray;
return $result;
}
$bla = bla($var,$array);
// переменные готовы:
echo $bla['one'];
echo $bla['two'];
echo $bla['three']; |
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 20/05/08 в 11:14 |
fil писал: | А я не пойму, что значит "придется извлекать каждое его значение"? Просто берешь и используешь:
Код: | function bla($var,$array)
{
...
$result['one'] = 'Hello!';
$result['two'] = 15;
$result['three'] = $newarray;
return $result;
}
$bla = bla($var,$array);
// переменные готовы:
echo $bla['one'];
echo $bla['two'];
echo $bla['three']; | |
не спорю, можно и так,
только если там 50 извлекаемых переменных, можно и руки сломать, пока все укажешь
|
|
x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.
|
0
|
|
|
С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430
|
Добавлено: 20/05/08 в 11:14 |
Тоже хотел написать чтобы юзал массив.
Так же по ссылке можешь переменные складывать или юзать глобальные переменные.
|
|
|
|
С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430
|
Добавлено: 20/05/08 в 11:16 |
freeek писал: | не спорю, можно и так,
только если там 50 извлекаемых переменных, можно и руки сломать, пока все укажешь |
Почему?
Ты ведь можешь не задавать их всех а просто
for($i = 0; $i< 50); $i++){
$result[] = $i;
}
return $rusult;
Думаю не оболомишся
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 20/05/08 в 11:22 |
dDan писал: | Почему?
Ты ведь можешь не задавать их всех а просто
for($i = 0; $i< 50); $i++){
$result[] = $i;
}
return $rusult;
Думаю не оболомишся |
это можно сделать и попроще,
но суть в том что, я просто не вдавался в дебри, т.е.
если речь идет и массивах, то это определенный стринговый кей для каждого значения
извлечь, проблем нету,
а вот потом, что ними будем делать дальше - это вопрос,
если каждая переменная, ранее уже имеет свое имя и смысловую нагрузку,
то тупо, чтобы не запутаться, такой вариант мало привлекательный
впринципе, всех вблагодарю и оценил, топик можно считать закрытым
|
|
x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.
|
0
|
|
|
С нами с 20.01.03
Сообщения: 18003
Рейтинг: 9760
|
Добавлено: 20/05/08 в 13:00 |
ассоциативный массив используй по аналогии выше с 'one'...
сделай вида 'takae_peremennaya', 'drugaya_peremennaya'...
какие тут могут быть проблемы?
|
|
|
|
С нами с 07.09.03
Сообщения: 4115
Рейтинг: 2060
|
Добавлено: 20/05/08 в 13:08 |
freeek писал: | это можно сделать и попроще,
но суть в том что, я просто не вдавался в дебри, т.е.
если речь идет и массивах, то это определенный стринговый кей для каждого значения
извлечь, проблем нету,
а вот потом, что ними будем делать дальше - это вопрос,
если каждая переменная, ранее уже имеет свое имя и смысловую нагрузку,
то тупо, чтобы не запутаться, такой вариант мало привлекательный
впринципе, всех вблагодарю и оценил, топик можно считать закрытым |
а вообще юзай ООП, и у тебя не будет возникать таких вопросов
|
|
|
|
Милитарист
С нами с 13.01.06
Сообщения: 677
Рейтинг: 569
|
Добавлено: 20/05/08 в 13:08 |
[url=http://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование]ООП[/url] и [url=http://ru.wikipedia.org/wiki/Класс_(программирование)]классы[/url] спасут детей русской демократии.
Ыыыю.. А че русские урлы низззя?
|
|
|
|
С нами с 07.09.03
Сообщения: 4115
Рейтинг: 2060
|
Добавлено: 20/05/08 в 13:12 |
одна и та же мысль была выдана двумя человеками одновременно в 14:08
ООП форева!
|
|
|
|
С нами с 03.05.07
Сообщения: 801
Рейтинг: 825
|
Добавлено: 20/05/08 в 23:31 |
Ну можно конечно вот так вот изъебнуться:
Код: |
function func()
{
$ret["one"]=1;
$ret["two"]=2;
$ret["three"]=3;
return $ret;
}
extract(func());
echo $one;
echo $two;
|
Таким образом, в функции все переменные заносятся в массив, а при окончании выполнения функции этот массив преобразовывается в переменные. Но это то же, если перечислить все переменные в global фукнкции, хотя более гибко.
Вообще не понятно, зачем такое нужно. Нет описания задачи.
Цитата: | а вот потом, что ними будем делать дальше - это вопрос |
Тогда надо писать на объектах, чтобы все переменные работали в пределах каждого объекта.
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 21/05/08 в 06:03 |
если результат тот, который ожидаю
то этого вполне хватит
|
|
x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.
|
0
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 22/05/08 в 15:44 |
Используй массивы, самый простой и работоспособный способ.
Или еще вариант:
Код: |
<?
function arr(){
for($i=0;$i<10;$i++)
{ $a .= $i; }
return $a;
}
?> |
|
|
|
|
С нами с 18.08.04
Сообщения: 6376
Рейтинг: 4430
|
Добавлено: 22/05/08 в 17:30 |
ну и нахрена строчку выводить?
можно правда делать $st .= $i.'|'
а потом сделать explode, Но имхо ахинея
|
|
|
|
С нами с 04.11.05
Сообщения: 178
Рейтинг: 122
|
Добавлено: 22/05/08 в 19:04 |
можно ещё так извратится:
Код: |
function abc(){
return Array(12345,67890)
}
list($v1,$v2)=abc();
|
хотя массивы уже предлагали, но такое почитабельнее imho
|
|
|
|
С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134
|
Добавлено: 22/05/08 в 20:43 |
вариант extract подошел, а я даже и забыл про него,
вернее думал он по другому работает
|
|
x100BTC.com Промокод SudDude009 подключить бесплатно и навсегда.
|
0
|
|
|
С нами с 03.07.05
Сообщения: 474
Рейтинг: 231
|
Добавлено: 23/05/08 в 14:25 |
Лучше уже использовать массив, так как глобальные переменные обещают убрать в 6м пхп.
|
|
PROMO!!! Free Dedicated servers! Send me PM.
Dedicated servers in Europe (DE,NL,RO) and USA from 39$.
|
5
|
|
|
С нами с 27.04.06
Сообщения: 72
Рейтинг: 20
|
Добавлено: 27/05/08 в 20:37 |
Если значений не много и хочется сделать компактно - то еще можно так:
function func()
{
$ret[]=1;
$ret[]=2;
$ret[]=3;
return $ret;
}
list($one, $two, $three) = func();
Хотя ООП конечно рулит
|
|
|
|