有没有可能有一个函数有两个这样的返回:
function test($testvar)
{
// Do something
return $var1;
return $var2;
}
如果是这样的话,我如何才能分别获得每个回报?
发布于 2010-08-11 01:56:32
在您的示例中,第二次返回永远不会发生-第一次返回是PHP将运行的最后一次返回。如果需要返回多个值,则返回一个数组:
function test($testvar) {
return array($var1, $var2);
}
$result = test($testvar);
echo $result[0]; // $var1
echo $result[1]; // $var2
发布于 2013-02-20 05:29:05
在PHP5.5中还有一个新的概念:generators
,你可以从一个函数中产生多个值:
function hasMultipleValues() {
yield "value1";
yield "value2";
}
$values = hasMultipleValues();
foreach ($values as $val) {
// $val will first be "value1" then "value2"
}
发布于 2010-08-27 06:06:25
或者,您可以通过引用传递:
function byRef($x, &$a, &$b)
{
$a = 10 * $x;
$b = 100 * $x;
}
$a = 0;
$b = 0;
byRef(10, $a, $b);
echo $a . "\n";
echo $b;
这将输出
100
1000
https://stackoverflow.com/questions/3451906
复制相似问题