我有这段代码,用php生成一个HTML表格:
<?php
include("numbers2.php");
echo '<table border="1">';
echo '<tr>';
for ($i = 1; $i <= 9; $i++) {
if($a1_pos_txt !== TRUE) {
echo "<td>" . $numbers["a" . $i . "_pos"] . "</td>";
} else {?>
<?php
echo '<td><input type="text" name="a' . $i . '_post" size="1" maxlength="1" /></td>';
?>
<?php } }?>我需要做的是修改$a1_post_txt变量,这样当foor循环时,我每次都会得到它,而不是$a1_pos_txt:
$a1_pos_txt
.
.
$a9_pos_txt我基本上是用$numbers["a" . $i . "_pos"]和name="a' . $i . '_post"做的,但现在变量在另一个变量中,我不知道该怎么做。
我希望它足够清楚,如果没有,请要求任何需要澄清。
提前感谢!!
发布于 2010-11-19 21:33:18
使用数组而不是变量。将包含像true或flase这样的值,这些值之前在$a1_pos_txt......$a9_pos_txt中
$arrOfValues[1] = TRUE;
$arrOfValues[2] = FALSE;
......
.....
...
$arrOfValues[9] = TRUE;因此,代码将如下所示
<?php
include("numbers2.php");
echo '<table border="1">';
echo '<tr>';
for ($i = 1; $i <= 9; $i++) {
if($arrOfValues[$i] !== TRUE) {
echo "<td>" . $numbers["a" . $i . "_pos"] . "</td>";
} else {?>
<?php
echo '<td><input type="text" name="a' . $i . '_post" size="1" maxlength="1" /></td>';
?>
发布于 2010-11-19 21:24:25
您可以使用动态变量:
<?php
$test = 'a';
echo ${'test'};
?>这将显示"a“。
所以你可以构建一个字符串形式的变量名并获取它的值!
发布于 2010-11-19 21:43:00
有人建议使用变量变量--它们太可怕了!不要使用它们!(它们会使您的代码很难阅读和维护,并且有可能引入安全问题)。
其他人建议使用eval() --绝对不要使用它!!(在几乎所有可能的情况下,使用eval都被认为是非常糟糕的实践;极有可能引入安全问题)
一些人建议使用数组而不是命名变量--这是正确的解决方案。
你已经用$numbers做过了,所以你能用post变量做类似的事情吗?
如果它们与您获得的name="a' . $i . '_post"代码相关,那么您可以将此代码改为post变量--类似于:
name="a_post['.$i.']"然后,不再有名为a1_post和a2_post等的post变量,而是名为a_post[1]和a_post[2]等的post变量。然后很容易遍历它们,因为它们是一个数组。
https://stackoverflow.com/questions/4225354
复制相似问题