Функция 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);

Это не будет полезно, если вам всегда нужно возвращать два массива, но он может использоваться, чтобы всегда возвращать один массив и возвращать другой только в определенных случаях.