我很好奇,如果我可以在一行中为函数以PHP函数返回的特定数组索引值赋值。从函数直接使用数组,而不先指定变量
现在我有一个函数返回一个关联数组,我做了两行代码。
$var = myFunction($param1, $param2);
$var = $var['specificIndex'];
没有添加一个参数来确定返回类型是什么,有没有办法在一行中做到这一点?
我很好奇,如果我可以在一行中为函数以PHP函数返回的特定数组索引值赋值。从函数直接使用数组,而不先指定变量
现在我有一个函数返回一个关联数组,我做了两行代码。
$var = myFunction($param1, $param2);
$var = $var['specificIndex'];
没有添加一个参数来确定返回类型是什么,有没有办法在一行中做到这一点?
在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
这是一个很好的答案。尽管(在我看来)'list(,$ b)'可能不是用于可读性的最佳语法。 – user1477388
@ user1477388:我知道,但这仅仅是一个例子。 –
可悲的是我的服务器使用PHP 5.2。感谢列表选项,虽然 –
您可以添加一个附加的可选参数,如果设置了,则会返回该值。请参阅以下代码:
function myFunction($param1, $param2, $returnVal = "")
{
$arr = array();
// your code here
if ($returnVal)
{
return $arr[$returnval];
}
else
{
return $arr;
}
}
不好的代码,但...工程! – FabianoLothor
是什么让这段代码很糟糕?只是不常规,你的意思是? – user1477388
只是想说有更好的方法来解决这个问题。 – FabianoLothor
发布你的功能。 – FabianoLothor