我使用while循环遍历数组并使用数组的输出设置动态变量。这工作正常,但我想在每个循环上生成的字符串中回显值。字符串是从服务器中提取的。我知道我需要评估该字符串,所以我使用的是eval(),而不是在每个循环上都有一个新值,eval似乎保持第一个值。
当我将输出字符串作为回显内联提供时,它会使用数组中的动态数据生成多行。
以下是我的代码。 $ value是从服务器端数据库中提取的字符串。它是“礼物描述: $ giftDesc 赋予: $ giftGiven”,不含引号。
while ($i < 3){
$keys = $keywords[$i];
$array = $_POST[$keys];
$$keywords[$i] = $array[$ii];
$i++;
}
eval("\$value = \"$value\";");
echo $value;
返回:
Description of Gift: Gift1
Given to: Given 1
Description of Gift: Gift1
Given to: Given 1
但是,如果我执行以下代码:
while ($i < 3){
$keys = $keywords[$i];
$array = $_POST[$keys];
$$keywords[$i] = $array[$ii];
$i++;
}
print "<strong>Description of Gift: </strong>$giftDesc<strong>Given to: </strong>$giftGiven";
返回:
Description of Gift: Gift1
Given to: Given 1
Description of Gift: Gift2
Given to: Given 2
所以,问题是为什么eval()不会在每个循环中发生变化?
感谢您的帮助。
答案 0 :(得分:0)
您的eval
不在循环中。它只运行一次。