Функция PHP возвращает два массива
У меня есть функция, и мне нужно вернуть два массива.
Я знаю, что функция может возвращать только одну переменную.. есть ли способ вернуть мои два массива?
Если я их конкатенирую, как я могу отделить их от использования функции?
Ответы
Ответ 1
Нет необходимости конкатенации: просто верните массив из двух массивов, например:
function foo() {
return array($firstArray, $secondArray);
}
... тогда вы сможете назначить эти массивы локальным переменным с помощью list, например:
list($firstArray, $secondArray) = foo();
И если вы работаете с PHP 5.4, здесь также можно использовать синтаксис ярлыков:
function foo54() {
return [$firstArray, $secondArray];
}
Ответ 2
Я думаю, что ответ raina77ow отвечает на ваш вопрос. Другим вариантом является использование параметров записи.
function foobar(array &$arr1 = null)
{
if (null !== $arr1) {
$arr1 = array(1, 2, 3);
}
return array(4, 5, 6);
}
Затем, чтобы вызвать:
$arr1 = array();
$arr2 = foobar($arr1);
Это не будет полезно, если вам всегда нужно возвращать два массива, но он может использоваться, чтобы всегда возвращать один массив и возвращать другой только в определенных случаях.