我在我的PHP代码中遇到过这个问题。这一切都有效,但我不明白为什么需要使用逃生。这会生成所有月份的下拉菜单。
foreach ($months as $key => $value) {
echo "<option value \"$key\">$value</option>\n";
但是这样做:
foreach ($months as $key => $value) {
echo "<option value $key>$value</option>\n";
所以我很困惑为什么要使用逃生?对不起,这可能是非常明显但我是php的新手?
答案 0 :(得分:2)
你的第二个例子不起作用;它产生一个解析错误。
引号被转义以向PHP指示您希望逐字地返回引号,而不是使用引号来指示字符串的开头或结尾。在你的第一个例子中,这是有效的。在第二个示例中,会产生错误,因为您在.
变量之前和之后都缺少一个运算符(如$key
表示连接)。
更新:您已更新了问题,因此我会相应更新我的答案。
现在的区别在于,在您的第一个示例中,引号将打印在$key
左右,而在第二个示例中,引号不会打印在$key
周围。
如果$key
包含没有空格的值,那么浏览器没有功能差异,它们都会以相同的方式创建下拉列表。但是,如果$key
包含空格,则无法正常工作,因为$key
中空格之前的字符将作为所选选项的值发送。
想象一下以下HTML:
<option value="some value">Display</option>
现在没有引号:
<option value=some value>Display</option>
或者包含更多属性:
<option value=some value selected>Display</option>
所以你可以看到这不起作用。