php - php循环中的“if”
问题描述
我试图$vat1 - $vat10$
通过循环字符串来缩短这段代码
$vat1 = htmlspecialchars($_POST["vat1"]);
if ($vat1 != "zw" && $vat1 != "") {
$vat1 .= "%";
}
$vat2 = htmlspecialchars($_POST["vat2"]);
if ($vat2 != "zw" && $vat2 != "") {
$vat2 .= "%";
}
....
但由于其中的 if 语句,它无法正常工作:
for ($x; $x <=10; $x++){
$vat = 'vat' . $x;
$$vat = htmlspecialchars($_POST["vat" . $x]);
if ($$vat != "zw" && $$vat != "") {
$$vat .= "%";
}
}
我已经读过在循环中使用三元运算符,所以我试图像这样:
for ($x; $x <=10; $x++){
$vat = 'vat' . $x;
$$vat = htmlspecialchars($_POST["vat" . $x]) .
($$vat != "zw" && $$vat != "") ? $$vat .= "%" : "";
}
但是仍然没有产生很好的效果。你能告诉我如何使它正确吗?
解决方案
${'vat.$x}
您可以使用构造而不是使用可变变量
$_POST = ['vat1' => 1, 'vat2' => 'zw', 'vat3' => '', 'vat4' => 4, 'vat5' => 5,
'vat6' => 6, 'vat7' => 7, 'vat8' => 8, 'vat9' => 9, 'vat10' => 10
];
for ($x=1; $x <=10; $x++) {
// ^^^^ Note I started the loop at a specific place 1 in this case
${'vat'.$x} = htmlspecialchars($_POST['vat'.$x]);
if (${'vat'.$x} != "zw" && ${'vat'.$x} != "") {
${'vat'.$x} .= "%";
}
}
echo 'vat1 = ' . $vat1.PHP_EOL;
echo 'vat2 = ' . $vat2.PHP_EOL;
echo 'vat3 = ' . $vat3.PHP_EOL;
echo 'vat4 = ' . $vat4.PHP_EOL;
echo 'vat5 = ' . $vat5.PHP_EOL;
echo 'vat6 = ' . $vat6.PHP_EOL;
echo 'vat7 = ' . $vat7.PHP_EOL;
echo 'vat8 = ' . $vat8.PHP_EOL;
echo 'vat9 = ' . $vat9.PHP_EOL;
echo 'vat10 = ' . $vat10.PHP_EOL;
结果
vat1 = 1%
vat2 = zw
vat3 =
vat4 = 4%
vat5 = 5%
vat6 = 6%
vat7 = 7%
vat8 = 8%
vat9 = 9%
vat10 = 10%
或者您可以坚持使用可变变量解决方案
for ($x=1; $x <=10; $x++) {
// ^^^^ Again start the loop at a specific place 1 in this case
$t = 'vat'.$x;
$$t = htmlspecialchars($_POST['vat'.$x]);
if ($$t != "zw" && $$t != "") {
$$t .= "%";
}
}
也会产生
vat1 = 1%
vat2 = zw
vat3 =
vat4 = 4%
vat5 = 5%
vat6 = 6%
vat7 = 7%
vat8 = 8%
vat9 = 9%
vat10 = 10%
所以基本上你的代码的所有问题都是你没有正确启动 for 循环。
推荐阅读
- python - 阵列点积
- visual-studio-2015 - ReportViewer 15 在 IE11 浏览器不支持错误中使用
- c - 我的缓冲区有问题,不是我的 C 程序中的所有线程的总和
- php - 如何在 php 中使用 implode 获取数据库表的列名
- python - 使用蓝图在烧瓶上渲染模板时图像不显示
- geolocation - 从最近到最远订购 Firestore GeoHash 查询?
- favicon - 如何将 favicon 添加到 Next.js 静态站点?
- javascript - iOS Safari 视频/相机无法在移动设备上运行 - Javascript 和 Html
- ios - 如何使变量可以从不同的 swift 文件中访问?
- angular - ng new 错误:EPERM: operation not allowed syscall unlink