只是想知道这样的最佳实践是什么:
一个返回多个变量的函数-一个应该如何返回这些变量?
像这样(全局化):
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();
编辑:在某些情况下,关联数组也很合适。我无法想象性能差异会带来这种清晰度的损失。