0

所以我有一个变量列表

$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;

我知道这种说法行不通,但这是我能想到的。这样做的结果是,如果变量 value =="Yes" 那么会将原始变量的值更改为“N/A”。因此,在检查所有变量后,它会将 $TestData4 更改为“N/A”。

4

3 回答 3

6

与其拥有一个名称数组,不如拥有一个关联数组(键值对)更有意义:

$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";

这种方式更加整洁和简单。

于 2013-08-23T02:22:18.103 回答
2

我用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;

}
于 2013-08-23T02:21:32.693 回答
2

使用两美元符号。

查看 PHP 变量变量: http: //php.net/manual/en/language.variables.variable.php

foreach ($TestArray as $Data):

   $VariableToTestConnditions=$$Data;

endforeach;
于 2013-08-23T02:23:02.517 回答