Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 直接引用函数中的参数_Php - Fatal编程技术网

Php 直接引用函数中的参数

Php 直接引用函数中的参数,php,Php,我试图编辑一段由开发公司编写的代码,该公司大量使用以下结构: $dbcol = grabdata($strSqlB,'','','','','','',2); 真的没有更简单的方法吗?代码完全不可读 我本以为以下内容会起作用,并且在可读性方面效果良好: $vars = array("parameter1" => $strSqlB, "parameter7" => 2); $dbcol = grabdata($vars); 函数本身是否有需要重构的内容才能使其正常工作?我们还能做些

我试图编辑一段由开发公司编写的代码,该公司大量使用以下结构:

$dbcol = grabdata($strSqlB,'','','','','','',2);
真的没有更简单的方法吗?代码完全不可读

我本以为以下内容会起作用,并且在可读性方面效果良好:

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

函数本身是否有需要重构的内容才能使其正常工作?我们还能做些什么聪明的事来让这件事不那么像一堆废话吗

您必须重构此部件:

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


如果$vars与您在问题中所描述的一样,那么这两个代码段的作用应该完全相同

重构是必要的,因为函数需要通过适当的键引用参数数组,而不是通过特定的参数变量引用。关于如何进一步重构,我需要更多地了解函数本身。

为accept null重建参数

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

//Exec
$dbcol = grabdata($strSqlB , $param7);
作为@Pekka注释中(更好)解决方案的替代方案,您还可以对函数中的参数进行重新排序,以便将
$strSqlB
2
表示的任何内容放在第一位,并将其余部分的默认值设置为
NULL
。然后您只需要调用
grabdata($strSqlB,2)
,因为您已经为其余部分设置了默认值。下次>。
function grabdata($strSqlB , $param7 , $param1 = null , $param2 = null , ....){
   //Code
}

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