只是想知道这样的最佳实践是什么:

一个返回多个变量的函数-一个应该如何返回这些变量?

像这样(全局化):

function myfun(){

global $var1,$var2,$var3;

$var1="foo";
$var2="foo";
$var3="foo";

}//end of function

或类似这样(返回数组):
function myfun(){

$var1="foo";
$var2="foo";
$var3="foo";

$ret_var=array("var1"=>$var1,"var2"=>$var2,"var3"=>$var3);

return $ret_var;

}//end of function

我进行了性能测试,看起来使用数组的速度更快(经过几次刷新):
array took: 5.9999999999505E-6
global took: 2.0999999999938E-5

但是我很想知道哪种方法最适合这种简单情况?

最佳答案

您应该绝对返回一个数组。这要清楚得多。您甚至可以使用 list 构造来模拟a-la python的多个返回值:

function foon() {
   return array('one', 'two', 'three');
}
list($one, $two, $three) = foon();

编辑:在某些情况下,关联数组也很合适。我无法想象性能差异会带来这种清晰度的损失。

10-05 20:35
查看更多