2012-10-25 40 views
3

我很好奇,如果我可以在一行中为函数以PHP函数返回的特定数组索引值赋值。从函数直接使用数组,而不先指定变量

现在我有一个函数返回一个关联数组,我做了两行代码。

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

没有添加一个参数来确定返回类型是什么,有没有办法在一行中做到这一点?

+0

发布你的功能。 – FabianoLothor

回答

4

在PHP 5.4中,您可以这样做:$var = myFunction(param1, param2)['specificIndex'];

另一个选项是知道数组的顺序,并使用list()。请注意0​​只适用于数值数组。

例如:

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

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

这是一个很好的答案。尽管(在我看来)'list(,$ b)'可能不是用于可读性的最佳语法。 – user1477388

+0

@ user1477388:我知道,但这仅仅是一个例子。 –

+0

可悲的是我的服务器使用PHP 5.2。感谢列表选项,虽然 –

1

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

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

    // your code here 

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

不好的代码,但...工程! – FabianoLothor

+0

是什么让这段代码很糟糕?只是不常规,你的意思是? – user1477388

+0

只是想说有更好的方法来解决这个问题。 – FabianoLothor

相关问题