Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

return в функциях

14K
23 декабря 2007 года
Progr\.
72 / / 15.10.2007
Как я понимаю return "выкидывает" результат из функции, но он выкидывает только один результат, а мне нужно, чтоб вышли 2 результата. Т.е. в выходных данных должно быть 2 переменные:
$a и $b. Как выкинуть их вместе?

Нужно конкретно для этого:
 
Код:
$a = $c - 2;
$b = $c - 2;


могу сделать только так:
 
Код:
function aa($c) {
$a = $c - 2;
return $a;
}
function bb($c) {
$b = $c - 2;
return $b;
}


Нужнол чтоб это была одна функция и результата было два. И объясните как с ними работать..

P.S.: может довольно глупый вопрос, но я не могу вкурить...
Спасибо.
1.9K
23 декабря 2007 года
InterWen
331 / / 16.09.2006
Возврат массива:

 
Код:
function ab($c)
{
$r = array();
$r['a'] = $c - 2;
$r['b'] = $c - 2;
return $r;
}



Присваивание по ссылкам:

 
Код:
function ab($c, &$ret_a, &$ret_b)
{
$ret_a = $c - 2;
$ret_b = $c - 2;
}
// переменные переданные из вызывающего кода в качестве второго и третего аргументов (по ссылке) по завершению работы 'ab' ф-ии будут содержать необходимые значения
244
23 декабря 2007 года
UAS
2.0K / / 19.07.2006
Такое вообще не возможно..

Как вариант:
 
Код:
$values = array();

function foo() {
    $GLOBALS['values']['a'] = $c - 2;
    $GLOBALS['values']['b'] = $c - 2;
}

Вот. Ну или можешь массив по ссылке в функцию передавать..
Или возвращать массив, в котором будут нужные числа.. Короче 3 способа уже написал тебе..
Вернуть 2 результата невозможно. На то она и функция.


ЗЫ: не успел)) Опеределили)
15
23 декабря 2007 года
shaelf
2.7K / / 04.05.2005
Есть ещё оооооооооооооооооооооооочень тупой вариант (пишу потому, что есть, а не потому, что так делать надо)
 
Код:
$foo = null;
$bar = null;
function fooBar(&$foo, &$bar){}

Думаю, что общий смысл понятен. Мы в функцию передаём имена 2 переменых по ссылке, там их заполяем и в дальнейшем используем. Но повторюсь, это ооочень плохой пример.
2.1K
23 декабря 2007 года
vectoroc
234 / / 25.07.2006
Дам свой вариант :)
 
Код:
function foo($c) {
  $res = array();
  $res[] = $c - 2;
  $res[] = $c - 2;
  return $res;
}

list($a, $b) = foo($c);


А если конкретно для твоего примера, то $a = $b = $c - 2; :)
14K
23 декабря 2007 года
Progr\.
72 / / 15.10.2007
Большое спасибо всем :)
Воспользовался примером UAS
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог