为什么我必须在单引号括起的字符串中转义双引号?

时间:2013-08-01 21:04:10

标签: php

我有一个变量,我将其设置为HTML标记(下拉菜单):

$weapon_secondary = '<select name="weapon" class="dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>'

运行我的PHP文件给我

解析错误:语法错误,第437行C:\ web \ submit_build.php中的意外“武器”(T_STRING)

一旦我转义双引号,解析器就可以正常工作了。我认为单引号中的字符串是“原样”的?这段代码很好用:

$weapon_secondary = '<select name=\"weapon\" class=\"dropdown\">
<option>Option 1</option>
<option>Option 2</option>
</select>'

为什么我必须在单个引号中转义双引号?

3 个答案:

答案 0 :(得分:0)

您似乎在变量作业结束时遗失了分号;

应该是:

$weapon_secondary = '<select name="weapon" class="dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>';

作为替代方案,您可以使用heredoc声明变量并避免此引用练习:

$weapon_secondary <<< EOF
<select name="weapon" class="dropdown">
<option>Option 1</option>
<option>Option 2</option>
</select>
EOF;

答案 1 :(得分:0)

不应该,这里肯定会有一些错误的配置。确保Magic Quotes文件中已禁用php.ini

答案 2 :(得分:0)

你的错误必须在其他地方。

参见工作示例:http://phpfiddle.org/main/code/m6g-25w