1

我讨厌问这么简单的问题,但我完全被难住了。我正在尝试输出

<input type='radio' name='state' value='VALUE' /> OTHERVALUE

这是荒谬的简单,但有些东西正在打破。我的声明,

echo '<input type="radio" name="state" value="' . $abbr . '" /> ' . $state;

导致停止输出的错误。在调试时我还尝试了以下变体,所有这些看起来都应该对我有用:

echo "<input type='radio' name='state' value='";
echo '<input type=\'radio\' name=\'state\' value=\'';
echo "<input type=\"radio\" name=\"state\" value=\"";

在每种情况下,删除单引号/双引号之前的最后一个 '、"、\' 或 \" 即可解决问题。我可以解决这个问题,但我现在已经花了 20 多分钟来调试它。这是什么原因造成的?我对 ' 和 " 如何工作的知识有差距吗?

4

3 回答 3

2

缺少结尾的双引号和单引号。

echo '<input type="radio" name="state" value=""'

echo "<input type='radio' name='state' value=''";

echo '<input type=\'radio\' name=\'state\' value=\'\'';

echo "<input type=\"radio\" name=\"state\" value=\"\"";

如果你想要一个里面的值:

echo '<input type="radio" name="state" value="' . $value . '">';

于 2013-03-02T00:15:55.823 回答
1

如果你输出不完整的标签,浏览器会在之后贪婪地抓取所有东西,把它们当作属性,直到它最终找到一个>.

以后,使用 View Source 查看脚本的原始输出,您会更清楚地看到这些东西。

于 2013-03-02T00:18:07.973 回答
0

尝试echo "<input type='radio' name='state' value='$variable'";

或者

尝试echo '<input type="radio" name="state" value="' . $variable . '"';

如果以双引号 (ie echo " hello to 'this' $variable ";) 开头,则可以在这些引号中包含变量,也可以包含单引号

如果以单引号开头,则不能包含内联变量,但可以包含双引号:echo 'hello to "this" $variable';将输出hello to "this" $variable.

看起来您知道这一点,但您可能只是忘记在这里和那里关闭报价。

echo '<input type="radio" name="state" value="'

将输出<input type="radio" name="state" value="通知丢失的关闭引号和关闭标记!

于 2013-03-02T00:18:06.127 回答