доступ к массиву оценивает без квадратных скобок в php

В php, как я могу получить доступ к значениям массива, не используя квадратные скобки вокруг ключа? Моя конкретная проблема состоит в том, что я хочу получить доступ к элементам массива, возвращенного функцией. Скажите, что функция (args) возвращает массив. Почему $var = функция (args) [0]; вопли на меня о квадратных скобках? Могу я делать что-то как $var = функция (args) .value (0); или я пропускаю что-то очень простое?

7
задан amb 23 March 2010 в 01:15
поделиться

3 ответа

Как говорили другие, вам в значительной степени нужно использовать временную переменную:

$temp = myFunction();
$value = $temp[0];

Но, если вы знаете структуру возвращаемого массива, это можно избежать временной переменной.

Если вам нужен только первый член:

$value = reset(myFunction());

Если вам нужен последний член:

$value = end(myFunction());

Если вам нужен какой-либо промежуточный:

// second member
list(, $value) = myFunction();

// third
list(, , $value) = myFunction();

// or if you want more than one:

list(, , $thirdVar, , $fifth) = myFunction();
10
ответ дан 6 December 2019 в 14:02
поделиться

В PHP при получении массива в качестве результата функции вы, к сожалению, должны сделать дополнительный шаг:

$temp_array = function($args);
$var = $temp_array[0];

Для объектов это было ослаблено в PHP 5. Вы можете сделать:

$echo function($args)->property;

(при условии функция , конечно же, возвращает объект.)

2
ответ дан 6 December 2019 в 14:02
поделиться
function getKey($array, $key){
    return $array[$key];
}

$var = getKey(myFunc(args), $key);

К сожалению, это невозможно сделать без добавления пользовательской функции. Это просто не часть синтаксиса.

Вы всегда можете просто сделать это по старинке.

$array = myFunc();
$value = $array[0];
1
ответ дан 6 December 2019 в 14:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: