有可能有一个函数有两个返回值,像这样:
function test($testvar)
{
// Do something
return $var1;
return $var2;
}
如果是这样,我怎样才能分别得到每一个回报?
有可能有一个函数有两个返回值,像这样:
function test($testvar)
{
// Do something
return $var1;
return $var2;
}
如果是这样,我怎样才能分别得到每一个回报?
当前回答
最佳实践是将返回的变量放入数组,然后使用list()将数组值赋给变量。
<?php
function add_subt($val1, $val2) {
$add = $val1 + $val2;
$subt = $val1 - $val2;
return array($add, $subt);
}
list($add_result, $subt_result) = add_subt(20, 7);
echo "Add: " . $add_result . '<br />';
echo "Subtract: " . $subt_result . '<br />';
?>
其他回答
PHP 7.1更新
返回一个数组。
function test($testvar)
{
// Do something
return [$var1, $var2];
}
然后像下面这样使用:
[$value1, $value2] = test($testvar);
我想eligo已经解释得很清楚了。但如果你想返回两个值,把它们放到一个数组中并返回。
function test($testvar)
{
// do something
return array('var1'=>$var1,'var2'=>$var2);
//defining a key would be better some times
}
//访问返回值
$returned_values = test($testvar);
echo $returned_values['var1'];
echo $returned_values['var2'];
PHP中的函数只能返回一个变量。你可以使用全局作用域的变量,你可以返回数组,或者你可以通过引用传递变量给函数,然后改变值。但所有这些都会降低代码的可读性。 我建议你研究一下课程。
我已经实现了这样的多返回值PHP函数。善待你的代码。谢谢你!
<?php
function multi_retun($aa)
{
return array(1,3,$aa);
}
list($one,$two,$three)=multi_retun(55);
echo $one;
echo $two;
echo $three;
?>
它不可能有两个返回语句。然而,它不会抛出错误,但当函数被调用时,你只会收到第一个返回语句值。 我们可以使用return of array来获取多个返回值。例如:
function test($testvar)
{
// do something
//just assigning a string for example, we can assign any operation result
$var1 = "result1";
$var2 = "result2";
return array('value1' => $var1, 'value2' => $var2);
}