Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 直接使用函数中的数组,无需先指定变量_Php_Arrays_Function_Variables_Return Value - Fatal编程技术网

Php 直接使用函数中的数组,无需先指定变量

Php 直接使用函数中的数组,无需先指定变量,php,arrays,function,variables,return-value,Php,Arrays,Function,Variables,Return Value,我很好奇是否可以在一行上为一个变量指定PHP函数返回的特定数组索引值的值 现在我有一个函数,它返回一个关联数组,我用两行代码做我想做的事情 $var = myFunction($param1, $param2); $var = $var['specificIndex']; 在不添加确定返回类型的参数的情况下,有没有一种方法可以在一行中执行此操作?您可以添加一个额外的可选参数,如果设置了,将返回该值。请参阅以下代码: function myFunction($param1, $param2, $

我很好奇是否可以在一行上为一个变量指定PHP函数返回的特定数组索引值的值

现在我有一个函数,它返回一个关联数组,我用两行代码做我想做的事情

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

在不添加确定返回类型的参数的情况下,有没有一种方法可以在一行中执行此操作?

您可以添加一个额外的可选参数,如果设置了,将返回该值。请参阅以下代码:

function myFunction($param1, $param2, $returnVal = "")
{
    $arr = array();

    // your code here

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

在PHP5.4中,您可以这样做:
$var=myFunction(param1,param2)['specificIndex']

另一种选择是了解数组的顺序,并使用。请注意,
list
仅适用于数字数组

例如:

function myFunction($a, $b){
    // CODE
    return array(12, 16);
}

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

这是一个很好的答案。
列表(,$b)
可能不是可读性最好的语法(在我看来)。@user1477388:我知道,但这只是一个例子。遗憾的是,我的服务器使用的是PHP5.2。谢谢你的列表选项,我只是想说有更好的方法来解决这个问题。我想用一行:
return($returnVal)$arr[$returnVal]:$arr@FabianoLothor:如果你愿意,请随时发布@是的,这也是一个选择。为了获得最佳可读性,我将我的文章作为一个简单的
if
语句发布。