在函数引用参数直接

问题描述:

我想编辑由开发公司,它使用下面的构造有很多写的一段代码:在函数引用参数直接

$dbcol = grabdata($strSqlB,'','','','','','',2); 

难道真的没有做一个更简单的方法这个?代码完全不可读。

我本来以为下面会的工作,并为可读性很好地工作:

$vars = array("parameter1" => $strSqlB, "parameter7" => 2); 
$dbcol = grabdata($vars); 

有什么需要的功能本身进行重构,使这项工作?还有什么我们可以做得更聪明的做法来减少团队欺骗?

+2

可能重复的[与将参数传递给函数的帮助(http://stackoverflow.com/questions/1870917/help-with-passing-arguments-to-function) – 2010-10-12 16:15:32

+0

作为替代的(更好)解决方案在@ Pekka的评论中,你也可以对函数中的参数进行重新排序,所以'$ strSqlB'和任何'2'表示都是第一个,其余的默认值为NULL。然后你只需要调用'grabdata($ strSqlB,2)',因为你已经为剩下的设置了默认值。 – chigley 2010-10-12 16:21:17

,你将不得不重构这个部分:

function grabdata($parameter1, $parameter2,$parameter3,$parameter4,$parameter5,$parameter6,$parameter7){ 

function grabdata($vars){ 
extract($vars); 

这两个片段应该做的完全一样的IF $瓦尔就像是你在你的问题

重构描述将是必要的,因为函数需要通过适当的键引用参数数组,而不是通过特定的参数变量引用。关于你可以做些什么来进一步重构,我必须更多地了解这个函数本身。

重建你的参数为接受null。

function grabdata($strSqlB , $param7 , $param1 = null , $param2 = null , ....){ 
    //Code 
} 

//Exec 
$dbcol = grabdata($strSqlB , $param7); 
+0

这是一个英文网站。 – poke 2010-10-12 17:17:25

+0

好的。下次>。 2010-10-12 17:27:24