所以我有一个变量列表
$TestData1="Hello";
$TestData2="";
$TestData3="0";
$TestData4="Yes";
$TestData5=" ";
$TestData6="No";
我想制作一个函数,通过过滤器运行所有这些变量。我想让这个循环一次检查所有变量。我想到了将变量名存储在一个数组中。如下所示。
$TestArray=array("TestData1", "TestData2", "TestData3", "TestData4","TestData5","TestData6");
因此,我的主要问题是如何在数组中取这些名称,并运行一个循环来检查是否满足某个条件。以下示例。
foreach ($TestArray as $Data):
$VariableToTestConnditions="$".$Data;
endforeach;
我知道这个说法不起作用,但这是我所能想到的。这样做的结果是,如果变量值=="是",则is会将原始变量的值更改为"N/A"。因此,在检查完所有变量后,它会将$TestData4更改为"N/A"。
与其有一个名称数组,不如有一个关联数组(键值对):
$TestArray = array(
"TestData1" => "Hello",
"TestData2" => "",
"TestData3" => "0",
"TestData4" => "Yes",
"TestData5" => " ",
"TestData6" => "No"
);
现在,如果你想测试一个变量:
foreach($TestArray as $key => $value) {
if($VariableToTestConnditions == $value) {
//do something
}
}
如果您想更改测试数据的值:
$TestArray["TestData1"] = "Good Bye";
这种方式更整洁、更简单。
我使用了echo来演示语法,你可以使用你喜欢的
$TestData1="Hello";
$TestData2="";
$TestData3="0";
$TestData4="Yes";
$TestData5=" ";
$TestData6="No";
$TestArray=array("TestData1", "TestData2", "TestData3", "TestData4","TestData5","TestData6");
foreach($TestArray as $a){
echo ${$a};
//or
echo $$a;
}
使用两美元符号。
请参阅PHP变量:http://php.net/manual/en/language.variables.variable.php
foreach ($TestArray as $Data):
$VariableToTestConnditions=$$Data;
endforeach;