繁体   English   中英

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

[英]Why do I have to escape double quotes in my string surrounded by single quotes?

我有一个设置为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>'

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

看起来你缺少分号; 在变量分配的末尾。

它应该是:

$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;

不应该 ,这里一定存在一些配置错误。 确保在php.ini文件中禁用了魔引号

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM