我的函数必须处理大量的变量(20+)。由于这个数字变得越来越笨重,每次我必须调用函数时,我正在寻求对每个活动变量的传统声明的改进,例如:
MyFunction($var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10......);
我正在尝试编写更好的模块化代码,我可以有效地重复使用它。作为改进,有没有办法将这些许多变量的名称折叠成一个单独的“配置文件”,以便我可以在需要时更干净地调用此函数...例如?
[在单独的配置文件中:]
$AllOfMyVariables = 'var1,var2,var3,var4,var5,var6,var7,var8,var9,var10';
...然后在需要时简单地调用MyFunction($AllOfMyVariables);
?
我一直无法成功做到这一点。我试过通过大括号传递变量名,但似乎无法使变量名/值正确传递。有什么建议?
答案 0 :(得分:1)
您可以在这样的数组中声明所有配置变量,其中键是变量名,值是变量的值。
$AllOfMyVariables = array(
'var1' => 'value1',
'var2' => 'value2',
'var3' => 'vaule3');
如果您愿意,可以将该数组存储在单独的PHP文件中,然后在需要时将其require()
编辑。然后你可以将这个数组传递给你的函数并使用提取函数。
function MyFunction($AllOfMyVariables) {
extract($AllOfMyVariables);
//Do ALL the things!
}
现在$ var1 ='value1'等等。
答案 1 :(得分:0)
有两种可能性,第一种是用户1612290提到的。
第二个是使用参数数组,比如
$arr = array($var1, $var2, ...);
或
$arr = array('var1' => $var1, 'var2' => $var2, ...);
并通过
调用该函数MyFunction($arr);
类似的方法是使用对象,所以
$object = new stdClass;
$object->var1 = $var1; // and so on.
答案 2 :(得分:0)
我建议您使用数组,在PHP中可以在数组中添加不确定数量的值
$param[0]="zero";
$param[1]="one";
...
您可以调用您的函数:
MyFunction($param);
你可以去所有阵列:
foreach($param as $key => $value)
数组的键是$ value,值是$ param [$ key]