Php 命名多个变量以供以后在函数中使用

Php 命名多个变量以供以后在函数中使用,php,function,variables,configuration-files,Php,Function,Variables,Configuration Files,我的函数必须处理大量变量(20+)。由于这个数字越来越难处理,我正在寻求一种改进,即每次必须调用函数时,都要对每个活动变量进行传统的声明,例如: MyFunction($var1、$var2、$var3、$var4、$var5、$var6、$var7、$var8、$var9、$var10……) 我正在努力编写更好的模块化代码,以便有效地重用。作为一项改进,是否有办法将这些变量的名称折叠到一个单独的“配置文件”中,以便我可以在需要时更清晰地调用此函数……例如? [在单独的配置文件中:: $AllO

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


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

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

$AllOfMyVariables = array(
  'var1' => 'value1',
  'var2' => 'value2',
  'var3' => 'vaule3');
如果您愿意,可以将该数组存储在单独的PHP文件中,然后在需要时对其进行
require()
'。然后可以将此数组传递到函数中,并使用extract函数

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

现在$var1='value1',等等。

有两种可能性,第一种是用户1612290提到的

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

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

并通过

MyFunction($arr);
类似的方法是使用对象,因此

$object = new stdClass;
$object->var1 = $var1; // and so on.

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

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

您可以调用您的函数:

MyFunction($param);
您可以在整个阵列中执行以下操作:

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

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

您可以创建一个数组,然后解析它。它是否可以存在于一个单独的配置文件中,可以反复使用?…或者,在每次调用函数之前是否必须直接重新创建数组?是的,它可以,也不需要这样做,但我不太明白:因为每个变量的值在脚本过程中都在变化(也许就在我调用函数之前),我如何才能将各种值正确地“预插入”到其他位置的数组中?也许在我创建数组时,我可以将“value1”替换为“$value1”(注意“$”),以便它保持“动态”?是的,您可以稍后修改基本数组。您可以从包含预设值的数组开始,然后使用
$AllOfMyVariables['variable\u name']='variable value';
对其进行修改(编辑:在调用
extract()
之前执行此操作)我可以在调用函数之前按照您的建议修改数组?或者,在函数内部(但在调用extract之前)?您可以在最初声明数组的位置(如果您将数组保存在单独的php文件中,则在
require()
调用之后的任何时间)和将数组传递到
extract()的位置之间的任意位置修改数组
函数。函数内部或外部都无所谓。
foreach($param as $key => $value)