echo "<OPTION value=$data2['product_id']>$data2['product_id']</OPTION>";
这给了我以下错误:
你可以帮帮我吗?如何解决此错误?PHP Parse错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE, 期待T_STRING或T_VARIABLE或T_NUM_STRING
答案 0 :(得分:2)
echo "<OPTION value=".$data2['product_id'].">".$data2['product_id']."</OPTION>";
答案 1 :(得分:1)
无论
echo "<OPTION value=$data2[product_id]>$data2[product_id]</OPTION>";
或
echo "<OPTION value={$data2['product_id']}>{$data2['product_id']}</OPTION>";
答案 2 :(得分:1)
可以通过将变量包装在花括号内来删除错误:
echo "<OPTION value={$data2['product_id']}>{$data2['product_id']}</OPTION>";
虽然这会更好(逃避输出):
echo '<option value="',
htmlspecialchars($data2['product_id']), '">',
htmlspecialchars($data2['product_id']),
'</option>';
答案 3 :(得分:1)
只需使用:
echo "<OPTION value=$data2[product_id]>$data2[product_id]</OPTION>";
或
echo "<OPTION value=" . $data2['product_id'] . ">" . $data2['product_id'] . "</OPTION>";
或
echo sprintf("<OPTION value=%s>%s</OPTION>", $data2['product_id'], $data2['product_id']); // separate logic from presentation
在引用双引号字符串中的关联或数字数组时,不得使用引号。
我建议您在HTML属性中使用引号,并使用htmlentities()
和htmlspecialchars()
代表value="..."
以及OPTION
内的文字作为一般的最佳实践。
答案 4 :(得分:1)
我更喜欢使用printf
(或sprintf
)而不是将变量放在字符串中,因为我觉得它更容易阅读。您可能还希望HTML使用htmlspecialchars
转义值,以避免在值包含<
或>
时出错。
$prodid = htmlspecialchars($data2['product_id']);
printf('<OPTION value="%s">%s</OPTION>',
$prodid,
$prodid);