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="', 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>";
要么
我更喜欢使用printf(或sprintf)而不是将变量放在字符串中,因为我认为's much easier to read. You' ll可能还希望HTML使用htmlspecialchars转义值,以避免错误,如果值包含 < 或 > .
<
>
$prodid = htmlspecialchars($data2['product_id']); printf('<OPTION value="%s">%s</OPTION>', $prodid, $prodid);
只需使用:
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属性中使用 do use 引用,并使用 htmlentities() 和 htmlspecialchars() 作为 value="..." 以及 OPTION 中的文本作为一般的最佳实践 .
htmlentities()
htmlspecialchars()
value="..."
OPTION
5 回答
通过将变量包装在花括号中可以删除错误:
虽然这会更好(逃避输出):
或
要么
我更喜欢使用printf(或sprintf)而不是将变量放在字符串中,因为我认为's much easier to read. You' ll可能还希望HTML使用htmlspecialchars转义值,以避免错误,如果值包含
<
或>
.只需使用:
要么
要么
在引用双引号字符串中的关联或数字数组时,不得使用引号 .
我建议你在HTML属性中使用 do use 引用,并使用
htmlentities()
和htmlspecialchars()
作为value="..."
以及OPTION
中的文本作为一般的最佳实践 .