function ab($c)
{
$r = array();
$r['a'] = $c - 2;
$r['b'] = $c - 2;
return $r;
}
return в функциях
$a и $b. Как выкинуть их вместе?
Нужно конкретно для этого:
Код:
$a = $c - 2;
$b = $c - 2;
$b = $c - 2;
могу сделать только так:
Код:
function aa($c) {
$a = $c - 2;
return $a;
}
function bb($c) {
$b = $c - 2;
return $b;
}
$a = $c - 2;
return $a;
}
function bb($c) {
$b = $c - 2;
return $b;
}
Нужнол чтоб это была одна функция и результата было два. И объясните как с ними работать..
P.S.: может довольно глупый вопрос, но я не могу вкурить...
Спасибо.
Код:
Присваивание по ссылкам:
Код:
function ab($c, &$ret_a, &$ret_b)
{
$ret_a = $c - 2;
$ret_b = $c - 2;
}
// переменные переданные из вызывающего кода в качестве второго и третего аргументов (по ссылке) по завершению работы 'ab' ф-ии будут содержать необходимые значения
{
$ret_a = $c - 2;
$ret_b = $c - 2;
}
// переменные переданные из вызывающего кода в качестве второго и третего аргументов (по ссылке) по завершению работы 'ab' ф-ии будут содержать необходимые значения
Как вариант:
Код:
$values = array();
function foo() {
$GLOBALS['values']['a'] = $c - 2;
$GLOBALS['values']['b'] = $c - 2;
}
function foo() {
$GLOBALS['values']['a'] = $c - 2;
$GLOBALS['values']['b'] = $c - 2;
}
Вот. Ну или можешь массив по ссылке в функцию передавать..
Или возвращать массив, в котором будут нужные числа.. Короче 3 способа уже написал тебе..
Вернуть 2 результата невозможно. На то она и функция.
ЗЫ: не успел)) Опеределили)
Код:
$foo = null;
$bar = null;
function fooBar(&$foo, &$bar){}
$bar = null;
function fooBar(&$foo, &$bar){}
Думаю, что общий смысл понятен. Мы в функцию передаём имена 2 переменых по ссылке, там их заполяем и в дальнейшем используем. Но повторюсь, это ооочень плохой пример.
Код:
function foo($c) {
$res = array();
$res[] = $c - 2;
$res[] = $c - 2;
return $res;
}
list($a, $b) = foo($c);
$res = array();
$res[] = $c - 2;
$res[] = $c - 2;
return $res;
}
list($a, $b) = foo($c);
А если конкретно для твоего примера, то $a = $b = $c - 2; :)
Воспользовался примером UAS