PHP-变量变量或for()内变量的数组
我有以下代码可以用php生成HTML表:PHP-变量变量或for()内变量的数组,php,arrays,variables,loops,variable-variables,Php,Arrays,Variables,Loops,Variable Variables,我有以下代码可以用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
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 } }?>
我基本上就是用$number[a.$I.\u pos]和name=a'做的$我_但是现在这个变量在另一个变量中,我不知道怎么做
我希望它足够清楚,如果没有,请要求任何必要的澄清
提前谢谢
eval函数将执行您想要的操作
eval函数将执行您想要的操作。我想您应该用数组替换单个变量。 我是说,不是创造 $a1_pos_txt ... $a9_pos_txt
$arrOfValues[1] = TRUE;
$arrOfValues[2] = FALSE;
......
.....
...
$arrOfValues[9] = TRUE;
您应该有一个数组,可以在其中使用以下内容:
如果$myVar[$i]!==真{…}
在何处以及如何初始化标志变量
Charlie我想你应该用数组替换你的单个变量。 我是说,不是创造 $a1_pos_txt ... $a9_pos_txt
$arrOfValues[1] = TRUE;
$arrOfValues[2] = FALSE;
......
.....
...
$arrOfValues[9] = TRUE;
您应该有一个数组,可以在其中使用以下内容:
如果$myVar[$i]!==真{…}
在何处以及如何初始化标志变量
Charlie您可以使用动态变量:
<?php
$test = 'a';
echo ${'test'};
?>
这将显示a
因此,您可以将变量名构建为字符串并获取其值 您可以使用动态变量:
<?php
$test = 'a';
echo ${'test'};
?>
这将显示a
因此,您可以将变量名构建为字符串并获取其值
变量将执行您想要的操作
变量将执行您想要的操作。而不是使用变量数组。在您的数组中,将包含像true或flase这样的值,这些值早在$a1\u pos\u 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>';
?>
使用数组代替变量。在您的数组中,将包含像true或flase这样的值,这些值早在$a1\u pos\u 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>';
?>
有人建议使用变量-它们太糟糕了!不要用它们!它们会使您的代码很难阅读和维护,并且可能会带来安全问题 其他人建议使用eval-绝对不要使用它!!在几乎所有可能的情况下,使用eval被认为是非常糟糕的做法;很可能会带来安全问题 一些人建议使用数组而不是命名变量-这是正确的解决方案 你已经用$number做了,那么你能用post变量做类似的事情吗 如果它们与HTML代码相关,那么您就得到name=a'$我_post然后您可以将此代码改为post变量-类似如下:
name="a_post['.$i.']"
然后,不再使用名为a1_post和a2_post等的post变量,而是使用名为a_post[1]和a_post[2]等的post变量。因为它们是一个数组,所以循环它们变得非常容易。有人建议使用变量-它们太糟糕了!不要用它们!它们会使您的代码很难阅读和维护,并且可能会带来安全问题 其他人建议使用eval-绝对不要使用它!!在几乎所有可能的情况下,使用eval被认为是非常糟糕的做法;很可能会带来安全问题 一些人建议使用数组而不是命名变量-这是正确的解决方案 你已经用$number做了,那么你能用post变量做类似的事情吗 如果它们与HTML代码相关,那么您就得到name=a'$我_post然后您可以将此代码改为post变量-类似如下:
name="a_post['.$i.']"
然后,不再使用名为a1_post和a2_post等的post变量,而是使用名为a_post[1]和a_post[2]的post变量等等。然后循环它们变得非常容易,因为它们是一个数组。你应该使用数组而不是数组。你应该使用数组而不是数组。正如Lan所说的使用eval函数:或者正如Lan所说的使用eval函数:该死的,php对我来说已经失败了,至少我一开始就看一看!谢谢@Trufa-已确认php.net已关闭。但是像uk.php.net这样的镜像已经启动了,所以试试其中一个吧。这个网站又启动了,看起来不错!!谢谢,我会尝试一下。该死的php对我来说已经失败了,至少我会在它重新启动时给它看一看!谢谢@Trufa-已确认php.net已关闭。但是像uk.php.net这样的镜像已经启动了,所以试试其中一个吧。这个网站又启动了,看起来不错!!谢谢,我会尝试一下。是的,我可以,但我不知道如何为变量$a1_post_txt的一部分执行此操作,只更改1是的,我可以,但我不知道如何为变量$a1_post_txt的一部分执行此操作,只更改1,尽管我无法像这样应用,因为以前的代码这给了我一个好主意,只需一个稍微修改一下谢谢谢谢!!我做了一些非常相似的事情,但实际上这正是我所做的!我希望我的答案能帮助你解决你的问题,虽然我不能像这样应用它,因为以前的代码,这给了我一个好主意
稍微修改一下谢谢谢谢!!我做了一些非常相似的事情,但实际上这正是我所做的!我希望我的回答能帮助你解决问题