直接使用函数返回的数组,无需先分配一个变量

3

我很好奇在PHP中是否可以将一个变量的值分配为函数返回的特定数组索引值。

目前,我有一个返回关联数组的函数,并且我需要两行代码才能完成我想要的操作。

$var = myFunction($param1, $param2);
$var = $var['specificIndex'];

没有添加一个参数来确定返回类型的情况下,是否有一种方法可以在一行代码中完成这个操作?
2个回答

4
在 PHP 5.4 中,您可以这样做:$var = myFunction(param1, param2)['specificIndex'];
另一个选项是了解数组的顺序,并使用 list()。请注意,list 只适用于数字数组。
例如:
function myFunction($a, $b){
    // CODE
    return array(12, 16);
}

list(,$b) = myFunction(1,2); // $b is now 16

这是一个很好的答案。然而,list(,$b) 可能不是最易读的语法(在我看来)。 - user1477388
我知道,但那只是一个例子。 - gen_Eric
很遗憾,我的服务器使用的是PHP 5.2版本。不过还是感谢提供列表选项。 - Devin Crossman

1
您可以添加一个额外的可选参数,如果设置了,将返回该值。请参见以下代码:
function myFunction($param1, $param2, $returnVal = "")
{
    $arr = array();

    // your code here

    if ($returnVal)
    {
        return $arr[$returnval];
    }
    else
    {
        return $arr;
    }
}

只是想说,有更好的方法来解决这个问题。 - FabianoLothor
2
我会将它变成一行代码:return ($returnVal) ? $arr[$returnVal] : $arr; - nickb
@FabianoLothor:如果你愿意,可以随时发布它们。@nickb:是的,这也是一个选项。为了最佳可读性,我将我的发布为简单的“if”语句。 - user1477388

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接