从函数返回的PHP数组中获取元素

Gen*_* S. 15 php

我不确定这是否可能,但如果它是......我无法弄清楚如何做到这一点

我想从一个函数返回的数组中获取一个特定的元素,而不是先将它传递给一个数组......就像这样......

$item = getSomeArray()[1];


function getSomeArray(){
     $ret = Array();
     $ret[0] = 0;
     $ret[1] = 100;
     return $ret;
}
Run Code Online (Sandbox Code Playgroud)

这个的正确语法是什么?

Jon*_*Jon 16

PHP不能做到这一点还没有,这是一个众所周知的限制.你有充分的权利想知道"你在开玩笑吗?".抱歉.

如果您不介意生成E_STRICT警告,您可以随时分别使用reset和拉出数组的第一个和最后一个元素end- 这意味着您还可以提取任何元素,因为array_slice可以安排您想要保留的第一个或最后一个元素,但这可能是太过分了.

但绝望不是:(此时即将推出)PHP 5.4版本将包含这个功能(在名称数组解除引用下).

更新:我只想到了另一种可行的技术.可能有充分的理由说我从来没有使用过它或者看过它,但从技术上来说它可以完成这项工作.

// To pull out Nth item of array:
list($item) = array_slice(getSomeArray(), N - 1, 1);
Run Code Online (Sandbox Code Playgroud)


ano*_*nym 6

PHP 5.4 添加了Array Dereferencing,以下是 PHP 数组文档中的示例:

示例#7 数组解引用

function getArray() {
    return ['a', 'b', 'c'];
}

// PHP 5.4
$secondElement = getArray()[0]; // output = a

// Previously
$tmp = getArray();
$secondElement = $tmp[0]; // output = a
Run Code Online (Sandbox Code Playgroud)