0

我有以下代码:

echo"<input  name=\"q". $i. "\" value=\"4\" id=\"q1a1\" type=\"radio\" ";
    if ($results['q1']==4) echo "checked"
    echo";
    />";

编辑:添加了 echo 语句,这就是\原位的原因。

$results['q1']我希望1的部分'q1'是一个变量 - 这似乎没有达到预期的效果:

if ($results['q".$i."']==4) echo "checked"
4

4 回答 4

4

如果将字符串和变量放在双引号中,则整个内容将被评估为 1 个变量:

if ( $results["q$i"] == 4 ) echo "checked"
于 2012-10-03T20:50:28.253 回答
0
if ($results['q'.$i]==4) echo "checked"

这可以防止字符串插值出现问题。在这种情况下,这并不是一个真正的问题,但我感觉最好远离它,因为它使代码对我来说看起来更脏。

于 2012-10-03T20:52:11.120 回答
0

你想写:

if ($results["q".$i]==4) echo "checked"

这 ”。” 运算符将连接 2 个字符串以形成一个字符串,而关联数组则采用一个字符串。此外,'(引号)运算符中的变量不会被解析(这就是 " 和 ' 之间的区别),所以 '$i' 只会给出一个字符串 $i。

于 2012-10-03T20:53:30.963 回答
0

你可以

 if ( $results["q".$i] == 4 ) echo "checked"; // .(dot) operator concatenates strings/variables.

或者

 if ( $results["q$i"] == 4 ) echo "checked"; // double-quotes evaluates variables inside them.
于 2012-10-03T20:54:27.080 回答