多个PHP IF语句; 寻找一种方法来收紧我的代码

Chr*_*ris 1 php mysql loops

我有一系列变量需要根据某个条件对两个值中的一个进行处理; 在这种情况下,从MySQL数据库中提取一个值.为简单起见,假设变量是$ var1,$ var2,$ var3等.我有20个这样的变量设置,每个变量都附加到一个表单字段.现在,确定其值的逻辑如下所示:

if($row['condition1'] == 0) //Value pulled from MySQL table {
  $var1 = $_POST['var1']; //Value from a form field
  } else {
  $var1 = $_POST['var1hidden']; //Value from a hidden field
  }

if($row['condition2'] == 0) //Value pulled from MySQL table {
  $var2 = $_POST['var2']; //Value from a form field
  } else {
  $var2 = $_POST['var2hidden']; //Value from a hidden field
  }
Run Code Online (Sandbox Code Playgroud)

所以这有效,但我不想复制它二十次.有没有办法循环$ var1- $ var20,或者我坚持这个因为每个变量都需要自己评估?

Ama*_*ali 8

最好的解决方案是使用name[]语法将HTML表单输入更改为类似结构的数组.这样,您可以摆脱20个不同的变量并有效地管理用户输入.

但是,您可以使用${ }语法动态定义和比较变量:

for ($i=1; $i <= 20; $i++) { 
    if($row['condition'.$i] == 0) {
        ${'var'.$i} = $_POST['var'.$i];
    } else {
        ${'var'.$i} = $_POST['var'.$i.'hidden'];
    }
}
Run Code Online (Sandbox Code Playgroud)