我有以下代码:
echo"<input name=\"q". $i. "\" value=\"4\" id=\"q1a1\" type=\"radio\" ";
if ($results['q1']==4) echo "checked"
echo";
/>";
编辑:添加了echo语句,这就是\
就地的原因。
部分$results['q1']
我希望1
的{{1}}成为变量 - 这似乎没有达到预期的效果:
'q1'
答案 0 :(得分:4)
如果你将字符串和变量放在双引号中,整个事情将被评估为1个变量:
if ( $results["q$i"] == 4 ) echo "checked"
答案 1 :(得分:0)
if ($results['q'.$i]==4) echo "checked"
这可以防止字符串插值问题。在这种情况下,这不是一个问题,但我觉得最好远离它,因为它使代码看起来更脏。
答案 2 :(得分:0)
你想写:
if ($results["q".$i]==4) echo "checked"
“。” operator将连接2个字符串以生成字符串,而关联数组则使用字符串。此外,'(引用)运算符内的变量将不会被解析(这是“和”之间的差异)因此'$ i'将只给出字符串$ i。
答案 3 :(得分: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.