在函数引用参数直接
问题描述:
我想编辑由开发公司,它使用下面的构造有很多写的一段代码:在函数引用参数直接
$dbcol = grabdata($strSqlB,'','','','','','',2);
难道真的没有做一个更简单的方法这个?代码完全不可读。
我本来以为下面会的工作,并为可读性很好地工作:
$vars = array("parameter1" => $strSqlB, "parameter7" => 2);
$dbcol = grabdata($vars);
有什么需要的功能本身进行重构,使这项工作?还有什么我们可以做得更聪明的做法来减少团队欺骗?
答
,你将不得不重构这个部分:
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
可能重复的[与将参数传递给函数的帮助(http://stackoverflow.com/questions/1870917/help-with-passing-arguments-to-function) – 2010-10-12 16:15:32
作为替代的(更好)解决方案在@ Pekka的评论中,你也可以对函数中的参数进行重新排序,所以'$ strSqlB'和任何'2'表示都是第一个,其余的默认值为NULL。然后你只需要调用'grabdata($ strSqlB,2)',因为你已经为剩下的设置了默认值。 – chigley 2010-10-12 16:21:17