如何在for循环中创建变量?
这是循环:
for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) {
}
在这个循环中我想为每次传递创建一个变量$ seat,但它必须增加如此。第一次通过它应该是$seat1 = $_POST['seat'+$aantalZitjesBestellen]
,下次通过时:$seat2 = $_POST['seat'+$aantalZitjesBestellen]
依此类推。
所以最后它应该是:
$seat1 = $_POST['seat1'];
$seat2 = $_POST['seat2'];
等等。
所以$ _POST的变量和内容应该是动态的。
答案 0 :(得分:6)
首先,我会使用一个数组,除非我遗漏了一些东西。像$seat1
,$seat2
等变量往往具有更少的实用性,并且比使用数组更加麻烦。
话虽如此,请使用以下语法:
for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) {
$key = 'seat' . $counter;
$$key = $_POST[$key];
}
最后,PHP有一个内置函数,用于将数组键提取到符号表中:extract()
。 extract()
如果您使用未经过滤的用户输入(例如$_POST
),则存在巨大的潜在安全问题,因此请谨慎使用。
答案 1 :(得分:3)
这也可行:
for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) {
${'seat' . $counter} = $_POST['seat' . $counter];
}
答案 2 :(得分:2)
(为了清晰起见,扩展了 - 你可以能够做一行)
for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) {
$varname = 'seat' . $counter;
$$varname = $POST[$varname];
}
<强> BUT 强>!你真的不应该这样做。 (如果你真的必须,请参阅cletus' answer了解内置的PHP方法 - 但这也被认为是不好的做法。)
重新考虑你的问题,看看阵列是否可能是解决方案(我猜它会)。这将使检查(通过例如var_dump()
)和迭代更容易,并且不会污染全局变量空间。
答案 3 :(得分:0)
for ( $counter = 1; $counter <= $aantalZitjesBestellen; $counter ++) {
$name = 'seat' . $counter;
$$name = $_POST['seat' . $counter];
}
建议使用数组,因为您可以更轻松地检查它们。
答案 4 :(得分:0)
您可以使用extract,但我不建议您执行您要执行的操作。