有可能有一个函数有两个返回值,像这样:
function test($testvar)
{
// Do something
return $var1;
return $var2;
}
如果是这样,我怎样才能分别得到每一个回报?
有可能有一个函数有两个返回值,像这样:
function test($testvar)
{
// Do something
return $var1;
return $var2;
}
如果是这样,我怎样才能分别得到每一个回报?
当前回答
我知道我迟到了,但是有一个很好的简单的解决方法。 使用解构可以一次返回多个值。
function test()
{
return [ 'model' => 'someValue' , 'data' => 'someothervalue'];
}
现在你可以用这个
$result = test();
extract($result);
Extract为数组中的每个成员创建一个变量,以该成员命名。因此,您现在可以访问$model和$data
其他回答
我已经实现了这样的多返回值PHP函数。善待你的代码。谢谢你!
<?php
function multi_retun($aa)
{
return array(1,3,$aa);
}
list($one,$two,$three)=multi_retun(55);
echo $one;
echo $two;
echo $three;
?>
你可以通过引用来设置两个或多个变量的值:
function t(&$a, &$b) {
$a = 1;
$b = 2;
}
t($a, $b);
echo $a . ' ' . $b;
输出:
1 2
根据定义,函数只返回一个值。
但是,正如您所假设的,该值可以是一个数组。
所以你当然可以这样做:
<?PHP
function myfunc($a,$b){
return array('foo'=>$a,'bar'=>$b);
}
print_r(myfunc('baz','bork'));
也就是说,无论你想解决什么问题,花点时间想一想都是值得的。虽然返回一个复杂的结果值(如数组或对象)是完全有效的,但如果你的想法是“我想返回两个值”,那么你可能设计得很糟糕。如果你的问题没有更多的细节,这很难说,但停下来三思总是有益无害的。
是的,你可以使用对象:-)
但最简单的方法是返回一个数组:
return array('value1', 'value2', 'value3', '...');
我想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'];