echo "<OPTION value=$data2['product_id']>$data2['product_id']</OPTION>";
这给了我以下错误:
PHP 解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,需要 T_STRING 或 T_VARIABLE 或 T_NUM_STRING
你能帮帮我吗?如何修复此错误?
echo "<OPTION value=$data2['product_id']>$data2['product_id']</OPTION>";
这给了我以下错误:
PHP 解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,需要 T_STRING 或 T_VARIABLE 或 T_NUM_STRING
你能帮帮我吗?如何修复此错误?
echo "<OPTION value=".$data2['product_id'].">".$data2['product_id']."</OPTION>";
任何一个
echo "<OPTION value=$data2[product_id]>$data2[product_id]</OPTION>";
或者
echo "<OPTION value={$data2['product_id']}>{$data2['product_id']}</OPTION>";
可以通过将变量包装在花括号内来消除该错误:
echo "<OPTION value={$data2['product_id']}>{$data2['product_id']}</OPTION>";
虽然这会更好(转义输出):
echo '<option value="',
htmlspecialchars($data2['product_id']), '">',
htmlspecialchars($data2['product_id']),
'</option>';
只需使用:
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()
引号,并使用and htmlspecialchars()
forvalue="..."
和里面的文本OPTION
作为一般的最佳实践。
我更喜欢使用printf
(or sprintf
) 而不是将变量放在字符串中,因为我认为它更容易阅读。如果值包含或,您可能还希望使用 HTML 转义值htmlspecialchars
以避免错误。<
>
$prodid = htmlspecialchars($data2['product_id']);
printf('<OPTION value="%s">%s</OPTION>',
$prodid,
$prodid);