我有一系列变量需要根据某个条件对两个值中的一个进行处理; 在这种情况下,从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,或者我坚持这个因为每个变量都需要自己评估?
最好的解决方案是使用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)
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |