0

我的函数必须处理大量变量(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); 需要时?

我一直无法成功地做到这一点。我尝试通过大括号传递变量名,但似乎无法让变量名/值正确传递。有什么建议么?

4

3 回答 3

1

您可以在这样的数组中声明所有配置变量,键是变量名,值是变量的值。

$AllOfMyVariables = array(
  'var1' => 'value1',
  'var2' => 'value2',
  'var3' => 'vaule3');

如果您愿意,可以将该数组存储在一个单独的 PHP 文件中,然后在require()需要时使用它。然后您可以将此数组传递给您的函数并使用提取函数。

function MyFunction($AllOfMyVariables) {
    extract($AllOfMyVariables);
//Do ALL the things!
}

现在 $var1 = 'value1' 等等。

于 2013-06-04T21:55:20.993 回答
0

有两种可能,第一种是user1612290提到的。

第二个是使用参数数组,比如

$arr = array($var1, $var2, ...);

或者

$arr = array('var1' => $var1, 'var2' => $var2, ...);

并通过调用函数

MyFunction($arr);

类似的方法是使用一个对象来代替,所以

$object = new stdClass;
$object->var1 = $var1; // and so on.
于 2013-06-04T21:57:23.830 回答
0

我建议您使用数组,在 PHP 中您可以在数组中添加不确定数量的值

$param[0]="zero";
$param[1]="one";

……

你可以调用你的函数:

MyFunction($param);

你可以去所有的数组:

foreach($param as $key => $value)

数组的键在 $value 中,值在 $param[$key]

于 2013-06-04T22:06:43.910 回答