有可能有一个函数有两个返回值,像这样:
function test($testvar)
{
// Do something
return $var1;
return $var2;
}
如果是这样,我怎样才能分别得到每一个回报?
有可能有一个函数有两个返回值,像这样:
function test($testvar)
{
// Do something
return $var1;
return $var2;
}
如果是这样,我怎样才能分别得到每一个回报?
当前回答
我已经实现了这样的多返回值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 array('value1', 'value2', 'value3', '...');
根据定义,函数只返回一个值。
但是,正如您所假设的,该值可以是一个数组。
所以你当然可以这样做:
<?PHP
function myfunc($a,$b){
return array('foo'=>$a,'bar'=>$b);
}
print_r(myfunc('baz','bork'));
也就是说,无论你想解决什么问题,花点时间想一想都是值得的。虽然返回一个复杂的结果值(如数组或对象)是完全有效的,但如果你的想法是“我想返回两个值”,那么你可能设计得很糟糕。如果你的问题没有更多的细节,这很难说,但停下来三思总是有益无害的。
在数组中添加所有变量,然后最终返回数组。
function test($testvar)
{
// do something
return array("var1" => $var1, "var2" => @var2);
}
然后
$myTest = test($myTestVar);
//$myTest["var1"] and $myTest["var2"] will be usable
上面的绿色勾号给出的答案实际上是不正确的。如果返回一个数组,则可以在PHP中返回多个值。请看下面的示例代码:
<?php
function small_numbers()
{
return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
这段代码实际上是从PHP网站上的以下页面复制的:http://php.net/manual/en/functions.returning-values.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;
?>