Может ли функция вернуть 2 значения?

$a = 2; $b = 3;
function Num($a, $b){
   $c = $a + $b;
   $d = $a * $b;
   return $c, $d; // Вот тут весь вопрос
}

Вопрос: я могу с помощью return вернуть не одно а два значения без бубнов типа implode или объединениях их в массив и т.п.?

Или мне тут по уму надо 2 функции писать - одна вернёт значение сложения а вторая умножения?
  • Вопрос задан
  • 1827 просмотров
Решения вопроса 2
Stalker_RED
@Stalker_RED
Можно вернуть массив
$a = 2; $b = 3;
function Num($a, $b){
   $c = $a + $b;
   $d = $a * $b;
   return [$c, $d];
}
list($c, $d) = Num($a, $b);
echo "$c|$d";
// 5|6


Можно изменить переменную через указатель

$a = 2; $b = 3; $c = $d = null;
function Num($a, $b, &$c, &$d){
   $c = $a + $b;
   $d = $a * $b;
}

Num($a, $b, &$c, &$d);
echo "$c|$d";
// 5|6


А если вы напишете
return $c;
return $d;

то сработает только первый. после return функция возвращает значение и выполнение дальше не идет.
Ответ написан
chernish2
@chernish2
Ruby-программист
Только если обернуть в массив или в объект
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 18:49
5000 руб./за проект
27 апр. 2024, в 18:43
5000 руб./за проект
27 апр. 2024, в 18:42
1500 руб./за проект