我不确定这是否可能,但如果它是......我无法弄清楚如何做到这一点
我想从一个函数返回的数组中获取一个特定的元素,而不是先将它传递给一个数组......就像这样......
$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)
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)