В php, как я могу получить доступ к значениям массива, не используя квадратные скобки вокруг ключа? Моя конкретная проблема состоит в том, что я хочу получить доступ к элементам массива, возвращенного функцией. Скажите, что функция (args) возвращает массив. Почему $var = функция (args) [0]; вопли на меня о квадратных скобках? Могу я делать что-то как $var = функция (args) .value (0); или я пропускаю что-то очень простое?
Как говорили другие, вам в значительной степени нужно использовать временную переменную:
$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();
В PHP при получении массива в качестве результата функции вы, к сожалению, должны сделать дополнительный шаг:
$temp_array = function($args);
$var = $temp_array[0];
Для объектов это было ослаблено в PHP 5. Вы можете сделать:
$echo function($args)->property;
(при условии функция
, конечно же, возвращает объект.)
function getKey($array, $key){
return $array[$key];
}
$var = getKey(myFunc(args), $key);
К сожалению, это невозможно сделать без добавления пользовательской функции. Это просто не часть синтаксиса.
Вы всегда можете просто сделать это по старинке.
$array = myFunc();
$value = $array[0];