Как сделать чтобы функция возвращала несколько значений в php?

Пользователь

от caterina , в категории: PHP , 2 года назад

Как сделать чтобы функция возвращала несколько значений в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 2 года назад

@caterina К сожалению, PHP не позволяет возвращать несколько значений из функции, но Вы можете использовать list() функцию и вернуть массив из функции и сделать подобное что функция вернет несколько значений, пример кода:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php

function getValues() {
    return ["строка 1", "строка 2"];
}

list($str1, $str2) = getValues();

// Вывод: строка 1
echo $str1;

// Вывод: строка 2
echo $str2;


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от eryn.rodriguez , год назад

@caterina 

В PHP функция может возвращать только одно значение, но это значение может быть массивом или объектом, который содержит несколько значений.


Например, чтобы вернуть два значения из функции, можно создать массив и поместить значения в него, затем вернуть этот массив:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
function getValues() {
  $value1 = 10;
  $value2 = "Hello";
  $result = array($value1, $value2);
  return $result;
}

// использование функции
list($val1, $val2) = getValues();
echo $val1; // выводит "10"
echo $val2; // выводит "Hello"


Здесь функция getValues() создает массив, содержащий два значения, а затем возвращает этот массив. Для получения этих значений на вызывающей стороне используется конструкция list(), которая разбивает массив на два значения.


Также можно использовать объекты для возврата нескольких значений. В этом случае функция создает объект и присваивает значения его свойствам, затем возвращает этот объект. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class MyValues {
  public $value1;
  public $value2;
}

function getValues() {
  $result = new MyValues();
  $result->value1 = 10;
  $result->value2 = "Hello";
  return $result;
}

// использование функции
$values = getValues();
echo $values->value1; // выводит "10"
echo $values->value2; // выводит "Hello"


Здесь функция getValues() создает объект MyValues и присваивает значения его свойствам. Затем возвращается этот объект, который может быть использован на вызывающей стороне для получения значений свойств.